随机文件生成器(再次!)

时间:2012-04-18 19:12:09

标签: windows delphi random test-data

我非常需要一个生成真正随机,不可压缩虚拟文件的随机文件生成器。

我最终得到了这个delphi代码。 工作,但痛苦地懒散

 var
    Buf     : Integer;
    TheFile : TFileStream;
 begin
      TheFile := TFileStream.Create(FileName, fmCreate OR fmOpenReadWrite);
      with TheFile do
      begin
           for i := 0 to FileSize do    // Iterate
           begin
                Buf := Random(999999) * i;
                WriteBuffer(Buf, SizeOf(Buf));
           end;    // for
      end;    // with
 end,

我的问题是:我可以使用 fast 随机文件生成器吗?只要符合以下条件,Delphi代码和/或命令行工具都可以接受:

  1. 我可以在Windows 上运行它而不需要手动干预(我的测试需要这个,不允许干预)
  2. 快速
  3. 生成的文件不可压缩(即压缩生成的文件不会节省空间)

  4. 编辑对于有兴趣的人,我应用了我在这里收到的建议made this function,它足够快& 7zip很难压缩生成的数据。

2 个答案:

答案 0 :(得分:9)

使用4096字节的页面大小或多页面大小的缓冲区。一次写一个整数会很慢。

答案 1 :(得分:1)

您可以使用我用于在我的项目中生成测试数据的generate_random_file.py脚本(Python 3)。

  • 它适用于Linux和Windows。
  • 它非常快,因为它使用os.urandom()以256 KiB的块生成随机数据,而不是分别生成和写入每个字节。