主要内容

memcpy优化

连续复制数组元素的优化生成的代码,代码生成器试图替换的代码memcpy调用。一个memcpy电话可以更有效连续循环或多个元素赋值。这个表显示生成的C代码,没有的例子memcpy优化。

生成的代码与memcpy优化 生成的代码没有memcpy优化
memcpy(英文[0]和[0],10000 u * sizeof(双));
(i0 = 0;i0 < 10000;i0 + +) {C(钱数)=(钱数);
memcpy (z [0], x [0], 1000 u * sizeof(双));
Z [0] = X [0];Z [1] = X [1];Z [2] = X [2];…Z [999] = X [999];

启用或禁用memcpy优化:

  • 在命令行,设置代码配置对象的属性EnableMemcpy真正的。默认值是真正的

  • MATLAB®编码器™应用程序,使用memcpy向量赋值是的没有。默认值是是的

memcpy启用优化,使用memcpy依赖于复制的字节数。复制的字节数是数组元素的数量乘以所需的字节数C / c++的数据类型。

  • 如果复制的元素数量在编译时是已知的,然后代码生成器生成memcpy称只有当的字节数大于或等于memcpy阈值。

  • 如果在编译时不知道的元素数量,然后代码生成器生成memcpy不考虑阈值。

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

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

  • MATLAB编码器应用程序,Memcpy阈值(字节)

memset优化也使用memcpy阈值。

在某些情况下,代码生成器可以产生一个memcpy叫不考虑EnableMemcpyMemcpyThreshold参数,在应用程序或其等价的设置。

相关的话题