1

在我的系统中有很多用于存储矩阵的二进制文件。当创建这样的文件时,它必须填充一些值,即 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. 对缓冲区的大小有什么建议吗?

4

0 回答 0