Main Content

使用 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 编译

  1. 要打开生成对话框,请点击生成箭头

  2. 编译类型设置为 MEX

  3. 选中使用 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) 的并行化警告
  • JIT MEX

  • 无并行化

如果您要并行化 for 循环,请禁用 JIT 编译。
仅生成 C/C++ 源代码错误仅指定 JIT 编译或 C/C++ 代码的生成。

另请参阅

函数

对象

相关主题