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