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
叫不考虑EnableMemcpy
或MemcpyThreshold
参数,在应用程序或其等价的设置。