需要尽快使用perl创建每个10GB的大约10000个文件
我需要创建一些随机文件,比如说100000个1GB或更高的文件。我尝试了使用print/syswrite打开文件并写入其中的常规方法,但这需要30分钟以上的时间。有人能告诉我用perl实现它的其他高效快捷方法吗。您选择的语言在这里并不重要。Perl和其他任何东西一样好。您当然没有那么多RAM,因此所需的时间取决于磁盘的速度。不管怎样,写入100TB都需要很长时间。您想将这些文件用于什么目的 标准硬盘驱动器通常每秒写入100MB 这意味着写一个10GB文件需要100秒 10000个这样的文件将花费100万秒(约11.5天)的时间,并将占用100TB或25个标准4TB 3.5英寸驱动器需要尽快使用perl创建每个10GB的大约10000个文件,perl,file,random,large-files,Perl,File,Random,Large Files,我需要创建一些随机文件,比如说100000个1GB或更高的文件。我尝试了使用print/syswrite打开文件并写入其中的常规方法,但这需要30分钟以上的时间。有人能告诉我用perl实现它的其他高效快捷方法吗。您选择的语言在这里并不重要。Perl和其他任何东西一样好。您当然没有那么多RAM,因此所需的时间取决于磁盘的速度。不管怎样,写入100TB都需要很长时间。您想将这些文件用于什么目的 标准硬盘驱动器通常每秒写入100MB 这意味着写一个10GB文件需要100秒 10000个这样的文件将花费
您可以说服文件系统只为文件分配空间,而不编写任何内容,但据我所知,使用脚本语言无法做到这一点。您最终会得到包含随机数据的文件。在posixy系统上,只需:
dd bs=1M count=10240 if=/dev/urandom of=foo.dat
这最多需要几分钟。也许是一个好主意来解释你的目标是什么,因为可能有比你目前尝试的更好的方法。你想测试什么吗?你不在乎文件里有什么?在文件分配表中更改其大小。Il将被存储在磁盘上的剩余字节填充。Windows为其提供了一个API SetFilePointer和SetEndOfFIle。您可以在*Nix中使用系统调用。1 10G文件请参见.30分钟?这似乎太过分了;你在写多大的方块?您是否尝试过用一个不变的块编写一个文件,以查看生成随机数据的时间有多长?目前还不清楚OP是说创建一个10G文件需要30分钟以上的时间,在这种情况下会出现严重错误,还是创建10000或100000个预期的10G文件,考虑到大多数硬盘需要几天甚至几周的时间才能写入这么多数据。