控制内联

当限制内联:

  • 生成的代码的大小超过限制由于功能过度内联。例如,假设你有陈述,coder.inline( '总是'),特定功能的内部。然后,您调用该函数在你的代码中的许多不同的网站。生成的代码大小增加,因为内联函数每次调用的时间。然而,调用点必须是不同的。例如,如果将内联函数被调用一个循环内多次内联不会导致大的代码大小。

  • 你只有有限的RAM或堆栈空间。

你可以完全控制内联或禁用内联。要在命令行禁用内联,使用-O禁用:直列的选择代码生成命令。该选项禁用内联的所有功能。

功能的控件大小内联

您可以使用MATLAB®编码器™应用或命令行界面来控制的,可联的函数的最大大小。该函数的大小的指令,而不是实际的MATLAB指令或指令在目标处理器的抽象数来衡量的。使用此参数实验以获取所需的内联行为。

  • 使用的应用程序,在项目设置对话框,在所有设置标签中,设置字段的值,线上阈到所需的最大尺寸。

  • 在命令行中,创建一个代码生成配置对象。设置属性的值,InlineThreshold到所需的最大尺寸。

    CFG = coder.config('LIB');cfg.InlineThreshold = 100;

    通过使用该配置对象生成代码。

功能的控件大小内联后

您可以使用MATLAB编码器应用或命令行界面内联后,以控制的功能的最大尺寸。该函数的大小的指令,而不是实际的MATLAB指令或指令在目标处理器的抽象数来衡量的。使用此参数实验以获取所需的内联行为。

  • 使用的应用程序,在项目设置对话框,在所有设置标签中,设置字段的值线上阈值最大到最大尺寸,你想要的。

  • 在命令行中,创建一个代码生成配置对象。设置属性的值,InlineThresholdMax到所需的最大尺寸。

    CFG = coder.config('LIB');cfg.InlineThresholdMax = 100;

    通过使用该配置对象生成代码。

上联函数控制堆栈大小限制

在堆叠空间指定限制的约束允许内联的量。对于出的线功能,局部变量的函数栈空间被释放函数返回时。然而,内联函数,栈空间遗体占领了局部变量函数执行后还是一样。该属性的值InlineStackLimit以字节为单位进行测量。基于从目标硬件设置的信息,软件估计堆栈变量的数量有一定的价值InlineStackLimit可以容纳。这个估计不包括可能的C编译器优化,例如将变量在寄存器中。

您可以使用MATLAB编码器应用或命令行界面来控制上联的函数的堆栈大小限制。

  • 使用的应用程序,在项目设置对话框,在所有设置标签中,设置字段的值内嵌堆栈限制到最大尺寸,你想要的。

  • 在命令行中,创建一个代码生成配置对象。设置属性的值,InlineThresholdMax到所需的最大尺寸。

    CFG = coder.config('LIB');cfg.InlineStackLimit = 2000;

    通过使用该配置对象生成代码。

也可以看看

|

相关话题