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
参数或应用程序中的等效设置。
相关话题
这个话题有帮助吗?