MATLAB的性能

优化MATLAB代码的性能

matlab快速而越来越快

matlab.®在R2015A中引入的执行引擎使用JIT编译来加速所有MATLAB代码。JIT编译生成本机的机器级代码,可针对MATLAB代码和特定硬件进行优化。执行引擎的体系结构可以通过每个版本进一步优化,包括更快地调用内置功能和更快的索引操作。此外,许多核心MATLAB功能是隐式多线程的,以实现更好的性能。

使用一组基准来测量MATLAB性能,该基准涵盖单位操作和代表真实用户工作流程的完整应用程序。这些基准测试在不同硬件和操作系统上的Matlab发布周期内多次运行,以验证新的优化,检测和寻址性能回归,并识别操作系统特定问题。

您可以了解Matlab发行说明中的​​特定性能改进。由于MATLAB R2019B,性能发布说明包括与以前的MATLAB版本相比的执行时间中的测量改进。


MATLAB性能测试套件的平均加速。

使用MATLAB Profiler识别代码中的瓶颈。

提高MATLAB代码的性能

提高代码性能的第一步是识别瓶颈。例如,你可以:

  • 使用函数测量代码执行时间Tic.TOC., 和时代
  • 使用MATLAB Profiler查看程序的哪些部分占用的时间最多
  • 使用MATLAB代码分析仪进行其他建议,以提高性能

一旦您在代码中确定了瓶颈,已知的编程实践通常可以更快地制作代码。最常用的两种技术是阵列预释和矢量化。预先配置可以通过避免动态内存分配来提高性能。矢量化使您可以避免在单个命令中的矢量的所有元素上操作循环。这些技术在一起可以通过几个数量级来加速代码。

如果有必要,您可以通过使用编译语言编写应用程序的计算要求部分来提高性能。在MATLAB中,MEX函数使您能够调用高性能的C、c++或Fortran代码,就像MATLAB内置函数一样。使用MATLAB Coder™,您可以自动将MATLAB代码转换为MEX文件,这可能会运行得更快。


使用并行计算来利用您的硬件更多

您可以通过使用并行计算显式访问所有硬件资源来解决计算或数据密集型问题。只要熟悉并易于使用MATLAB,您就可以利用功能扩展到多个进程、多个线程和gpu。您可以在一台机器上开发和运行,并且可以在不需要重新编码的情况下将执行扩展到计算集群或云。


使用并行计算以显式使用所有硬件资源。