将数据写入文件的最有效方法

2024-02-16

我想将 2TB 数据写入一个文件,将来可能会是 PB。

数据由所有'1'。例如,2TB 数据包括"1111111111111......11111"(每个字节用“1”表示)。

以下是我的方法:

File.open("data",File::RDWR||File::CREAT) do |file|
  2*1024*1024*1024*1024.times do
  file.write('1')
  end
end

这意味着,File.write称为2TB倍。从Ruby的角度来看,有没有更好的实现方法呢?


你有几个问题:

  1. File::RDWR||File::CREAT总是评估为File::RDWR。你的意思是File::RDWR|File::CREAT (|而不是||).

  2. 2*1024*1024*1024*1024.times do运行循环 1024 次,然后将循环结果乘以左侧的内容。你的意思是(2*1024*1024*1024*1024).times do.

关于你的问题,我得到重要的通过一次写入 1024 字节来加速:

File.open("data",File::RDWR|File::CREAT) do |file|
  buf = "1" * 1024
  (2*1024*1024*1024).times do
    file.write(buf)
  end
end

您可能会尝试并找到比 1024 更好的缓冲区大小。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数据写入文件的最有效方法 的相关文章

随机推荐