主要内容

优化策略

MATLAB®编码器™在生成时引入某些优化C / c++代码或墨西哥人函数从您的MATLAB代码。有关更多信息,请参见生成代码中的MATLAB编码器优化

要进一步优化生成的代码,您可以:

  • 调整您的MATLAB代码。

  • 使用命令行或项目设置对话框中的配置对象生成控件代码。

为了优化生成代码的执行速度,对于这些情况,请根据需要执行以下操作:

条件 行动
你有循环的迭代是相互独立的。

使用并行for循环生成代码(parfor)

自动并行生成代码中的for循环

在MATLAB代码中有可变大小的数组。 最小化动态内存分配
在MATLAB代码中有多个可变大小的数组。您希望为较大的数组分配动态内存,为较小的数组分配静态内存。 设置“内存动态分配阈值”
您希望通过引用调用生成的函数。 避免生成代码中函数输入的数据副本
您正在调用MATLAB代码中的小函数。 内联代码
生成的代码的目标内存有限。您希望内联小函数,并为较大的函数生成单独的代码。 控制内联以微调生成代码的性能和可读性
您不希望为只包含常量的表达式生成代码。 将函数调用折叠成常量
在MATLAB代码中有不依赖于循环索引的循环操作。 最小化循环中的冗余操作
在MATLAB代码中有整数运算。您事先知道在生成的代码执行期间不会发生整数溢出。 关闭整数溢出支持金宝app
你事先就知道年代和S不会在执行生成的代码期间发生。 禁用对非有限数的金宝app支持
你有-迭代次数少的循环。 展开for-Loops和parfor-Loops
您已经有了针对目标环境优化的遗留C/ c++代码。 集成外部/自定义代码
你想要加速为基本向量和矩阵函数生成的代码。 通过使用BLAS调用加速生成的独立代码中的矩阵操作
您希望加快生成线性代数函数的代码。 使用LAPACK调用在生成的独立代码中加速线性代数
您希望加快为快速傅里叶变换(FFT)函数生成的代码。 通过使用FFTW库调用加速生成的独立代码中的快速傅里叶变换

为了优化生成代码的内存使用,在这些情况下,根据需要执行以下操作:

条件 行动
你有如果/其他/ elseif语句或switch / case /否则语句在您的MATLAB代码。在生成的代码中不需要语句的某些分支。 防止为未使用的执行路径生成代码
您希望通过引用调用生成的函数。 避免生成代码中函数输入的数据副本
生成的代码的堆栈空间有限。 控制堆栈空间使用
您正在调用MATLAB代码中的小函数。 内联代码
生成的代码的目标内存有限。您希望内联小函数,并为较大的函数生成单独的代码。 控制内联以微调生成代码的性能和可读性
您不希望为只包含常量的表达式生成代码。 将函数调用折叠成常量
在MATLAB代码中有不依赖于循环索引的循环操作。 最小化循环中的冗余操作
在MATLAB代码中有整数运算。您事先知道在生成的代码执行期间不会发生整数溢出。 关闭整数溢出支持金宝app
你事先就知道- s和-s不会在执行生成的代码期间发生。 禁用对非有限数的金宝app支持
您的MATLAB代码具有大型数组或结构的变量。您的变量不会在生成的代码中重用。它们被保存了下来。您希望了解保存大型数组或结构的变量名所需的额外内存是否会影响性能。 重用大型数组和结构