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

The*_*ude 6 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,
Run Code Online (Sandbox Code Playgroud)

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

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

编辑对于那些感兴趣的人,我应用了我在这里收到的建议并完成了这个功能,它足够快并且7zip很难压缩生成的数据.

Mar*_*mes 9

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

  • @ChrisThornton实际上它不会是I/O会成为瓶颈,而是调用`WriteFile`的开销.操作系统将具有缓冲层. (5认同)