主要内容

优化策略

马铃薯®编码器™生成时介绍某些优化C / C ++代码或者墨西哥人来自您的MATLAB代码的函数。有关更多信息,请参阅MATLAB编码器在生成的代码中优化

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

  • 修改您的MATLAB代码。

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

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

状况 行动
你有为了- 迭代彼此独立的纽扣。

生成与循环并行的代码(parcol)

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

您的MATLAB代码中有变量大小的数组。 最小化动态内存分配
您在MATLAB代码中有多个可变大小阵列。您希望为较大的数组进行动态内存分配和较小的数组和静态分配。 设置动态内存分配阈值
您希望通过引用调用生成的函数。 避免生成代码中的功能输入的数据副本
您正在调用Matlab代码中的小功能。 内联代码
生成的代码的目标内存有限。您希望内联小函数,并为较大的函数生成单独的代码。 控制与生成代码的微调性能和可读性的联系
您不希望为仅包含常量的表达式生成代码。 将函数调用转换为常量
您的MATLAB代码中的循环操作不依赖于循环索引。 最小化循环中的冗余操作
您在MATLAB代码中具有整数操作。事先您知道,在执行生成的代码期间不会发生整数溢出。 禁用对整数溢出的金宝app支持
你事先就知道在执行生成的代码期间不会发生s。 禁用对非小型数字金宝app的支持
你有为了- 几乎没有迭代的东西。 unr
您已经拥有针对您的目标环境优化的遗留C / C ++代码。 集成外部/自定义代码
您希望加快为基本向量和矩阵函数生成的代码。 使用BLAS调用在生成的独立代码中加速矩阵运算
您希望加快为线性代数函数生成的代码。 使用Lapack呼叫加快生成的独立代码中的线性代数
您希望加快为快速傅立叶变换(FFT)功能生成的代码。 使用FFTW库调用加快生成的独立代码中的快速傅里叶变换

要优化生成的代码的内存使用情况,对于这些条件,请根据需要执行以下操作:

状况 行动
你有如果/其他/ elseif陈述或者开关/案例/否则MATLAB代码中的陈述。您不需要在生成的代码中的陈述的某些分支。 防止代码生成未使用的执行路径
您希望通过引用调用生成的函数。 避免生成代码中的功能输入的数据副本
您为生成的代码有限的堆栈空间。 控制堆栈空间使用
您正在调用Matlab代码中的小功能。 内联代码
生成的代码的目标内存有限。您希望内联小函数,并为较大的函数生成单独的代码。 控制与生成代码的微调性能和可读性的联系
您不希望为仅包含常量的表达式生成代码。 将函数调用转换为常量
您的MATLAB代码中的循环操作不依赖于循环索引。 最小化循环中的冗余操作
您在MATLAB代码中具有整数操作。事先您知道,在执行生成的代码期间不会发生整数溢出。 禁用对整数溢出的金宝app支持
你事先就知道-沙在执行生成的代码期间不会发生。 禁用对非小型数字金宝app的支持
你的MATLAB代码有大型数组或结构的变量。您的变量不会在生成的代码中重用。他们被保存。您希望查看保留大型数组或结构的变量名所需的额外内存是否会影响性能。 重用大型数组和结构