文档

memcpy优化

为了优化复制连续数组元素的生成的代码,代码生成器试图用一个代码替换代码memcpy称呼。一种memcpy呼叫比一个更有效为了- 环或多个连续元素分配。该表显示了有和不带有和没有的示例memcpy优化。

用memcpy优化生成的代码 无内膜优化生成的代码
memcpy(&c [0],&a [0],10000U * sizeof(double));
for(i0 = 0; i0 <10000; i0 ++){c [i0] = a [i0];
memcpy(&z [0],&x [0],1000U * sizeof(double));
z [0] = x [0];z [1] = x [1];z [2] = x [2];... z [999] = x [999];

启用或禁用memcpy优化:

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

  • 在里面MATLAB®CODER™应用,设置使用memcpy进行矢量分配是的或者。默认值是是的

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

  • 如果要复制的元素数量在编译时已知,则代码生成器会产生一个memcpy仅当字节数大于或等于memcpy临界点。

  • 如果在编译时不知道元素的数量,则代码生成器会产生一个memcpy不考虑阈值。

默认值memcpy阈值是64个字节。改变阈值:

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

  • 在里面MATLAB编码器应用,设置memcpy阈值(字节)

memset优化还使用memcpy临界点。

在某些情况下,代码生成器可以产生memcpy不考虑enablemcpy或者memcpythreshold参数或应用程序中的等效设置。

相关话题

这个话题有帮助吗?