主要内容

内存使用情况

减少生成的C/ c++代码所使用的RAM、ROM和堆栈空间

确定如何修改您的MATLAB®代码,以便生成的代码使用更少的内存。当调用函数时,通过使用相同的输入和输出变量来控制数据的传递方式。引用传递减少了生成代码中使用的内存。通过设置堆栈空间使用限制和指定何时使用动态内存分配来控制如何分配内存。通过禁用生成额外代码的特性(如支持整数溢出)来最小化代码大小。金宝app

有关如何针对特定条件优化代码的更多信息,请参见优化策略

功能

coder.inline 在生成的代码中控制特定函数的内联
coder.const 在生成的代码中,将表达式折叠为常量
coder.ceval 调用外部C/ c++函数

编码器。常数 为代码生成指定常量值
编码器。ExternalDependency 外部代码接口

例子和如何做

条件语句

防止为未使用的执行路径生成代码

使用控制流变量常量来防止代码生成未使用的分支。

函数调用

在生成的代码中避免函数输入的数据副本

生成通过引用传递输入参数的代码。

控制内联以微调性能和可读性生成的代码

内联消除了函数调用的开销,但会产生更大的C/ c++代码,并降低代码的可读性。

控制栈空间使用情况

指定生成的代码可以使用的最大堆栈空间。

将函数调用折叠到常量中

通过在生成的代码中用常量替换表达式来减少执行时间。

数组

设置“动态内存分配阈值”

为小于一定大小的数组禁用动态内存分配。

重用大型数组和结构

指定变量重用以减少内存使用。

数值边界情况

禁用对整数溢出或金宝app非有限值的支持

通过抑制生成处理整数溢出或非有限的支持代码来提高性能。金宝app

自定义代码集成

集成外部/自定义代码

通过集成您自己的优化代码来提高性能。

通过使用LAPACK调用加速独立代码中的线性代数

生成特定线性代数函数的LAPACK调用。指定LAPACK库要使用。

通过使用BLAS调用加速生成的独立代码中的矩阵运算

为某些低级矩阵操作生成BLAS调用。指定要使用的BLAS库。

通过使用FFTW库调用加速生成的独立代码中的快速傅里叶变换

生成FFTW库调用快速傅里叶变换。指定FFTW库。

概念

优化策略

优化生成代码的执行速度或内存使用。

从生成的代码中排除未使用的路径

将控制流变量设置为常量,以防止为未使用的分支生成代码。

堆叠分配与性能

当堆栈空间有限时,在堆上分配较大的变量。

生成代码中的MATLAB编码器优化

为了提高所生成代码的性能,代码生成器使用了优化。

禁用对整数溢出或金宝app非有限值的支持

通过抑制生成处理整数溢出或非有限的支持代码来提高性能。金宝app

稀疏矩阵的代码生成

在MATLAB代码中使用稀疏矩阵用于代码生成。