要优化复制连续数组元素的生成的代码,代码生成器试图用一个替换代码梅检
称呼。一种梅检
呼叫可能比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.
应用程序中的参数或其等效设置。