技术来提高性能
加快您的代码的性能,考虑这些技术。
环境
注意后台进程,共享计算资源和MATLAB的性能降低®代码。
代码结构
而组织代码:
使用功能而不是脚本。函数通常更快。
喜欢当地的函数在嵌套的函数。使用这种做法特别是函数不需要访问变量在主函数。
使用模块化编程。避免与很少大文件和文件访问代码,代码分割成简单和有凝聚力的功能。这种做法可以减少初次运行成本。
编程实践的性能
考虑这些编程实践来改善代码的性能。
Preallocate——而不是不断调整数组,考虑preallocating数组所需空间的最大数量。有关更多信息,请参见预先配置。
Vectorize——而不是编写循环代码,考虑使用MATLAB矩阵和向量操作。有关更多信息,请参见向量化。
独立操作外循环,如果代码不与每个评估不同
为
或而
外循环迭代,移动它的循环,以避免冗余计算。创建新的变量变化——如果数据类型创建一个新的变量,而不是将不同类型的数据分配给现有的变量。改变现有的类或阵列形状变量需要额外的时间来处理。
使用短路运算符——使用短路逻辑运算符,
& &
和| |
在可能的情况下。短路是更有效率,因为MATLAB计算第二个操作数只有当结果是不完全取决于第一个操作数。有关更多信息,请参见短路,
和短路或
。避免全局变量——尽量减少全局变量的使用是一个很好的编程实践,和全局变量可以减少MATLAB代码的性能。
避免内置函数重载,避免重载内置函数在任何标准的MATLAB数据类。
避免使用“数据代码”——如果你有大部分的代码(例如,超过500行),生成变量与常量值,考虑构造变量和拯救他们,例如,在一个MAT-file或
. csv
文件。然后你可以加载变量而不是执行代码来生成它们。在后台运行代码,使用
parfeval
与backgroundPool
在后台运行一个函数。您可以同时运行其他代码在MATLAB和使你的应用程序的响应。有关更多信息,请参见在后台运行功能。在GPU上运行代码或并行——如果你有一个并行计算工具箱™许可证,GPU通过运行代码
gpuArray
数据支持函数或并行运金宝app行代码的使用,例如,一个parfor
循环。有关更多信息,请参见选择一个并行计算解决方案(并行计算工具箱)。
建议在特定MATLAB功能
写作时考虑以下建议特定的MATLAB函数性能关键代码。
避免清算更多不必要的代码。不要使用
清除所有
以编程方式。有关更多信息,请参见清晰的
。避免函数查询MATLAB等的状态
inputname
,哪一个
,谁
,存在(
,var
)dbstack
。运行时自省是计算昂贵。避免等功能
eval
,evalc
,evalin
,函数宏指令(
。使用这个函数处理输入帧
)函数宏指令
只要有可能。间接地评估一个MATLAB表达式从文本计算昂贵。避免使用编程式的
cd
,目录
,rmpath
,如果可能的话。在运行时改变了MATLAB路径导致代码重新编译。
相关的话题
- 测量代码的性能
- 概要文件代码来提高性能
- 预先配置
- 向量化
- 图形性能
- 测量和提高GPU性能(并行计算工具箱)