memcpy优化
若要优化复制连续数组元素的生成代码,代码生成器会尝试将代码替换为memcpy
调用。一个memcpy
呼叫可以比呼叫更有效为
-循环或多个连续的元素赋值。属性生成的C代码示例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
优化:
在命令行上,设置代码配置对象属性
EnableMemcpy
来真正的
或假
.默认值为真正的
.在MATLAB®编码器™应用程序,使用memcpy进行向量赋值来
是的
或没有
.默认值为是的
.
当memcpy
优化是启用的,使用memcpy
取决于要复制的字节数。要复制的字节数是数组元素的数量乘以C/ c++数据类型所需的字节数。
如果要复制的元素数量在编译时已知,则代码生成器将生成一个
memcpy
仅当字节数大于或等于时调用memcpy
阈值。如果在编译时不知道元素的数量,则代码生成器将生成一个
memcpy
调用时不考虑阈值。
默认的memcpy
阈值为64字节。修改阈值。
在命令行上,设置代码配置对象属性
MemcpyThreshold
.在MATLAB编码器应用程序,Memcpy阈值(字节).
的memset
优化还使用memcpy
阈值。
在某些情况下,代码生成器可以生成memcpy
打电话不考虑EnableMemcpy
或MemcpyThreshold
参数,或应用程序中的等效设置。