主要内容

优化策略

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

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

  • 适应您的MATLAB代码。

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

为了优化生成代码的执行速度,在这些条件下,根据需要执行以下操作:

条件 行动
你有-loops的迭代是相互独立的。

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

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

在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代码中的变量是大型数组或结构。您的变量不会在生成的代码中被重用。它们被保存了下来。您希望了解保存大型数组或结构的变量名所需的额外内存是否会影响性能。 重用大型数组和结构