使用 JIT 编译加速 MEX 生成
要加速 MEX 函数的生成,请指定使用即时 (JIT) 编译技术。当您在修改 MATLAB® 代码和测试 MEX 代码之间进行迭代时,使用此选项可以节省时间。
默认情况下,MATLAB Coder™ 通过生成和编译 C/C++ 代码来创建 C/C++ MEX 函数。当您指定 JIT 编译时,MATLAB Coder 会创建一个 JIT MEX 函数,该函数包含 MATLAB 代码的抽象表示。当您运行 JIT MEX 函数时,MATLAB 会在内存中生成可执行代码。
JIT 编译与某些代码生成功能或选项不兼容。请参阅 JIT 编译不兼容性。如果启用 JIT 编译,则代码生成期间没有警告或错误消息表明 JIT 编译成功。在代码生成报告中,摘要选项卡指示编译类型为 JIT MEX Function
。
注意
JIT MEX 函数在不同版本的 MATLAB Coder 软件之间不兼容。使用 MATLAB Coder 软件运行 JIT MEX 函数,该软件与您用于生成该函数的软件版本相同。
指定在 MATLAB Coder 中使用 JIT 编译
要打开生成对话框,请点击生成箭头
。
将编译类型设置为 MEX。
选中使用 JIT 编译复选框。
在命令行中指定使用 JIT 编译
使用 codegen
命令的 -jit
选项。例如,为 myfunction
指定 JIT 编译:
codegen -config:mex myfunction -jit -report
或者,使用 EnableJIT
代码配置参数。
cfg = coder.config('mex'); cfg.EnableJIT = true; codegen -config cfg myfunction -report
JIT 编译不兼容性
下表总结了与 JIT 编译不兼容的代码生成功能或选项。
不兼容性 | 消息类型 | 生成的 MEX | 操作 |
---|---|---|---|
自定义代码 | 警告 | C/C++ MEX | 要避免该警告,请禁用 JIT 编译。 |
更新编译信息 (coder.updateBuildInfo ) | 警告 | C/C++ MEX | 要避免该警告,请禁用 JIT 编译。 |
使用 OpenMP 应用程序接口实现 for 循环 (parfor ) 的并行化 | 警告 |
| 如果您要并行化 for 循环,请禁用 JIT 编译。 |
仅生成 C/C++ 源代码 | 错误 | 无 | 仅指定 JIT 编译或 C/C++ 代码的生成。 |