使用 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 函数,该软件与您用于生成该函数的软件版本相同。
指定使用 JIT 编译
要指示代码生成器使用 JIT 编译进行 MEX 函数生成,请使用以下方法之一:
在代码配置对象中,将
EnableJIT
属性设置为true
。在“代码生成设置”对话框中,选中对 MEX 的编译类型使用 JIT 编译复选框。
JIT 编译不兼容性
下表总结了与 JIT 编译不兼容的代码生成功能或选项。
不兼容性 | 消息类型 | 生成的 MEX | 操作 |
---|---|---|---|
自定义代码 | 警告 | C/C++ MEX | 要避免该警告,请禁用 JIT 编译。 |
更新编译信息 (coder.updateBuildInfo ) | 警告 | C/C++ MEX | 要避免该警告,请禁用 JIT 编译。 |
使用 OpenMP 应用程序接口实现 for 循环 (parfor ) 的并行化 | 警告 |
| 如果您要并行化 for 循环,请禁用 JIT 编译。 |
仅生成 C/C++ 源代码 | 错误 | 无 | 仅指定 JIT 编译或 C/C++ 代码的生成。 |