文档

控制运行时检查

运行时检查的类型

为您的MATLAB生成的代码®函数包括以下运行时检查和对MATLAB函数的外部调用。

  • 内存完整性检查

    这些检查在为MATLAB函数生成的代码中检测内存完整性的违反,并使用诊断消息停止执行。

    谨慎

    这些检查在默认情况下是启用的。如果没有内存完整性检查,就会导致不可预知的行为。

  • 在为MATLAB函数生成的代码中检查响应性

    这些检查可以定期检查为MATLAB函数生成的代码中的Ctrl+C中断符。启用响应性检查还可以启用图形刷新。

    谨慎

    这些检查在默认情况下是启用的。如果没有这些检查,结束长时间运行的唯一方法可能是终止MATLAB。

  • 对MATLAB函数的外部调用

    对MATLAB函数的外部调用(例如显示结果)在默认情况下为调试目的而启用。有关外部函数的更多信息,请参见将MATLAB函数声明为外部函数

何时禁用运行时检查

通常,生成启用运行时检查的代码会比生成禁用检查的代码生成更多的代码和更慢的MEX函数执行。类似地,外部调用是耗时的,会增加内存使用和执行时间。禁用运行时检查和外部调用通常会简化生成的代码和更快的MEX函数执行。下表列出了禁用运行时检查和外部调用时要考虑的问题。

考虑禁用… 只有在……
内存完整性检查 您已经验证了数组边界和维度检查是不必要的。
响应性检查 您可以确定不需要使用Ctrl+C停止应用程序的执行。
外部调用 您只对不影响应用程序结果的函数使用外部调用。

如何禁用运行时检查

可以从项目设置对话框、命令行或MEX配置对话框显式禁用运行时检查。

控件禁用运行时检查MATLAB编码器应用程序

  1. 打开生成对话框中的生成代码页,单击生成箭头

  2. 构建类型墨西哥人

  3. 点击更多的设置

  4. 速度选项卡,明确确保内存完整性启用响应CTRL+C和图形刷新,或保持外部调用,如适用。

从命令行禁用运行时检查

  1. 在MATLAB工作空间中,定义MEX配置对象:

    Mexcfg = code .config('mex');

  2. 在命令行上,设置IntegrityChecksExtrinsicCalls,或ResponsivenessChecks属性为false,如适用:

    mexcfg。IntegrityChecks = false;mexcfg。ExtrinsicCalls = false;mexcfg。ResponsivenessChecks = false;