在我的系统中有很多用于存储矩阵的二进制文件。当创建这样的文件时,它必须填充一些值,即 NAN 表示带有float
数字的矩阵。有什么好的解决方案可以加快这个过程吗?
目前的解决方案是这样的:这些文件是使用 进行内存映射的mmap()
,所以文件填充memcpy
如下:
float v = NAN;
for (i=0; i<n; ++i){
memcpy(start+i, &v, sizeof(v));
}
其中n
是矩阵中元素的数量,start
是内存映射地址。
我使用memcpy
而不是buff[i] = NAN
因为矩阵元素的类型可以不同。
在这种情况下批量复制有帮助吗?例如,我可以在内存中创建一个填充了 NAN 的缓冲区,然后将缓冲区复制到start
. 对缓冲区的大小有什么建议吗?