主要内容

MEMCPY优化

要优化复制连续数组元素的生成的代码,代码生成器试图用一个替换代码梅检称呼。一种梅检呼叫可能比a更效率为了-loop或多个,连续的元素分配。此表显示了具有和不带的生成的C代码的示例梅检优化。

使用Memcpy Optimization生成的代码 没有Memcpy Optimization生成的代码
memcpy(&c [0],&a [0],10000u * sizeof(双));
for(i0 = 0; i0 <10000; i0 ++){c [i0] = a [i0];
memcpy(&z [0],&x [0],1000u * sizeof(双));
z [0] = x [0];z [1] = x [1];z [2] = x [2];... z [999] = x [999];

启用或禁用梅检优化:

  • 在命令行,设置代码配置对象属性EnableMemcpy.真的或者错误的。默认值是真的

  • 在里面马铃薯®编码器™应用程序,集使用Memcpy用于矢量分配是的或者。默认值是是的

当。。。的时候梅检优化已启用,使用梅检取决于要复制的字节数。复制的字节数是数组元素的数量乘以C / C ++数据类型所需的字节数。

  • 如果在编译时复制的元素数是已知的,则代码生成器会产生a梅检仅当字节数大于或等于时拨打梅检临界点。

  • 如果在编译时未知元素数量,则代码生成器会产生a梅检呼叫,不考虑阈值。

默认值梅检阈值是64字节。要更改阈值:

  • 在命令行,设置代码配置对象属性MemcyThreshold.

  • 在里面Matlab编码器应用程序,集Memcpy阈值(字节)

Memset.优化也使用梅检临界点。

在某些情况下,代码生成器可以生成一个梅检打电话不考虑EnableMemcpy.或者MemcyThreshold.应用程序中的参数或其等效设置。

相关话题