我一直在使用 Octave 和 MATLAB 进行一些项目,并且遇到了一些问题。这个问题为什么/什么时候我应该更喜欢 MATLAB 而不是 Octave?) 回答了好几个,但还有一个挥之不去……
我已经阅读了许多比较 Octave 和 MATLAB 性能的帖子/其他来源,并且我已经在标准脚本上运行了一些我自己的测试,这些测试证实了普遍的共识,即 Octave 通常比 MATLAB 的标准操作慢得多(迭代,当然,这样比较才有意义)。
共识似乎还表明,MATLAB 的大部分性能提升归功于其 JIT 编译器,该编译器在运行时编译大型循环。这是有道理的,最大的性能差异似乎出现在这些情况下(例如Mathworks Matlab 与 Gnu Octave)
我的问题如下:为什么向量化代码在 Octave 中也运行得更慢?在这种情况下,似乎应该在循环之前留出内存,并且一些本机 C/C++ 循环应该执行该操作,这将等同于 Octave 和 MATLAB 对于矢量化代码的性能。此外,这是否具有更广泛的含义,即 Octave 对复杂操作的性能可能会更差,即使编写代码时不需要/未使用 JIT 编译器?