执行速度
使用代码生成选项和优化以提高生成的代码的执行速度。您可以修改或禁用动态内存分配,会影响执行速度。可以通过使用生成并行代码parfor
循环。当可用时,利用现有优化C代码和专业图书馆加速执行。
为更多的信息关于如何优化代码具体情况,看看优化策略。
功能
parfor |
并行循环 |
coder.varsize |
声明适应数据 |
coder.const |
表达式折叠成常量在生成的代码 |
coder.inline |
控制在生成的代码内联 |
coder.unroll |
展开循环复制的每个循环迭代循环体 |
coder.ceval |
调用外部C / c++函数 |
类
coder.LAPACKCallback |
抽象类用于指定LAPACK图书馆和LAPACKE LAPACK调用头文件在生成的代码 |
coder.BLASCallback |
抽象类用于指定BLAS图书馆和布拉斯特区CBLAS报头和数据类型信息在生成的代码调用 |
coder.fftw.StandaloneFFTW3Interface |
抽象类指定一个FFTW图书馆FFTW调用生成的代码 |
例子和如何
适应可变数组
改善执行时间通过最小化动态内存分配。
使用技术来帮助代码生成器决定适应可变数组的上界。
禁用应用程序中动态内存分配或在命令行。
禁用动态内存分配的数组小于一定规模。
循环
生成一个回路,在共享内存多核平台上并行运行。
生成一个墨西哥人循环迭代并行执行的函数在特定数量的可用内核。
治疗parfor
循环,parfor
循环运行在单独的线程中。
安装OpenMP库生成平行为
循环在macOS平台。
移动业务以外的循环。
控制循环展开。
函数调用
使用相同的变量作为输入和输出函数。
内联消除函数调用的开销通过替换函数的函数调用与身体。
限制内联减少生成的代码的大小和内存使用。
减少执行时间用常数代替表达式生成的代码。
外部代码集成
提高性能通过整合优化自己的代码。
为某些线性代数函数生成LAPACK调用。指定要使用LAPACK库。
bla呼吁某些低级的矩阵运算生成。指定要使用布拉斯特区图书馆。
为快速傅里叶变换生成FFTW库调用。指定FFTW图书馆。
实现FFT库调类方法并提供支持C代码来防止多个用户的并行访问FFTW规划。金宝app
概念
优化的执行速度和内存使用生成的代码。
动态内存分配可以减缓执行速度。
生成墨西哥人的功能parfor
循环。
内部变量parfor
循环分为循环、切片、广播、减少或暂时的。
积累减少变量的值取决于一起循环迭代。
来提高性能的生成的代码,代码生成器使用优化。
通过使用代码生成器生成的代码优化memcpy
。
通过使用代码生成器生成的代码优化memset
。
LAPACK函数调用提高生成的代码的执行速度对某些线性代数函数。
布拉斯特区函数调用提高生成某些低级代码的执行速度向量和矩阵运算。
生成C / c++代码行元素连续存储在内存中。
故障排除
诊断错误的代码生成parfor
循环。
发生在源MATLAB解决问题®代码包含全球或持久性变量可及的身体parfor
循环。