c++ - Matlab 与 Visual C++?

标签 c++ visual-studio-2008 matlab programming-languages

<分区>

我正在做一个使用大量图表的 Windows 应用程序。它实际上是一个数据查看器。我开始做 Matlab,因为它更容易,但我意识到它太慢了。我想换成另一种语言。有人向我推荐了 Visual C++ 或 Java。但我不确定。我应该使用什么语言??

最佳答案

在我看来,使用另一种“更快”的语言所带来的速度提升不如改进算法那么快。

MATLAB 的“问题”是它允许您做一些讨厌的事情,例如在紧密循环中调整矩阵的大小。您真的应该尝试使用以下命令查明您的瓶颈:

  profile on
  ... run your program
  profile off
  profile report

这将为您提供有关哪个函数需要多长时间执行以及哪条线造成最大瓶颈的很好的信息。您还可以查看一个函数被调用了多少次,并包含一份 M-Lint 代码检查报告。

这些测量和提示可以向您展示算法的瓶颈。如果您确定没有办法使用更智能的算法来减少函数的调用次数/速度。比如我真的需要那个智能 vector 足够大的大二维矩阵,或者如果我找到了一个人工制品,我为什么还要继续搜索人工制品。您可以在 c/c++ 中编写您遇到最多性能问题的函数,并将其用作 matlab 中的函数。通过正确选择要在 C/C++ 中实现的函数,您可以获得很大的加速。从 MATLAB 调用 c/c++ 函数会产生大量开销,或者更准确地说,在 c/c++ 中从 MATLAB 获取数据会产生开销,因此调用 10000 次的函数不是用 c 实现的最佳方法/c++,你最好使用调用堆栈更高层的函数。

关于c++ - Matlab 与 Visual C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/909078/

相关文章:

c++ - 这是一个智能指针吗?

涉及 vector 的 C++ 代码在 visual studio 上运行良好,但在 linux 上运行不佳

.net - 如何组织实用函数库?

matlab - 如果变量小于 1,如何使用 Matlab 显示零

matlab - 如何在Matlab中不使用嵌套循环的情况下最有效地比较坐标对?

C++11 随机数和 std::bind 以意想不到的方式交互

c++ - 使用 SFML 在第二台显示器上打开全屏窗口?

c++ - 语法繁重的多个 lambda 包装器的替代方案——如何避免样板代码?

.net - DataGridView.Column(ColumnName as String)给出错误 "Object reference not set to an instance of an object"

matlab - 在 Matlab 中交换 x 和 y 轴