MATLAB的性能
优化您的MATLAB代码的性能
优化您的MATLAB代码的性能
MATLAB®R2015a中引入的执行引擎,使用JIT编译来加速所有MATLAB代码。JIT编译生成本机机器级代码,这些代码针对MATLAB代码和特定硬件进行了优化。执行引擎的体系结构支持对每个版本进行进一步优化,包括更快地调用内置函数和更快地索引操作。此外,MATLAB的许多核心函数都是隐式多线程的,以获得更好的性能。
MATLAB的性能是使用一组基准测试来衡量的,这些基准测试涵盖了代表真实用户工作流的单元操作和完整的应用程序。这些基准测试在不同硬件和操作系统上的MATLAB发布周期中多次运行,以验证新的优化,检测和解决性能退化,并确定操作系统特定的问题。
您可以在MATLAB发行说明中了解具体的性能改进。自MATLAB R2019b以来,性能发布说明包括与以前的MATLAB版本相比,执行时间的测量改进。
提高代码性能的第一步是识别瓶颈。例如,你可以:
抽搐
,toc
,时间
使用MATLAB分析器查看程序的哪些部分运行时间最长一旦您确定了代码中的瓶颈,已知的编程实践通常可以使您的代码更快。最常用的两种技术是数组预分配和向量化。预先配置可以通过避免动态内存分配来提高性能。向量化使您能够通过在单个命令中操作vector的所有元素来避免循环。这些技术一起可以使代码速度提高几个数量级。
如果有必要,可以通过用编译语言编写应用程序中需要计算的部分来提高性能。在MATLAB中,MEX函数使您能够像MATLAB内置函数一样调用高性能的C、c++或Fortran代码。使用MATLAB Coder™,您可以自动将MATLAB代码转换为MEX文件,这可能会运行得更快。
通过使用并行计算显式地访问所有硬件资源,可以解决计算密集型或数据密集型问题。您可以利用MATLAB的功能扩展到多个进程、多个线程和gpu,这些都熟悉且易于使用。您可以在一台机器上开发和运行,并且可以将执行扩展到计算集群或云,而不需要重新编码。