Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要尽快使用perl创建每个10GB的大约10000个文件_Perl_File_Random_Large Files - Fatal编程技术网

需要尽快使用perl创建每个10GB的大约10000个文件

需要尽快使用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个这样的文件将花费

我需要创建一些随机文件,比如说100000个1GB或更高的文件。我尝试了使用print/syswrite打开文件并写入其中的常规方法,但这需要30分钟以上的时间。有人能告诉我用perl实现它的其他高效快捷方法吗。

您选择的语言在这里并不重要。Perl和其他任何东西一样好。您当然没有那么多RAM,因此所需的时间取决于磁盘的速度。不管怎样,写入100TB都需要很长时间。

您想将这些文件用于什么目的

标准硬盘驱动器通常每秒写入100MB

这意味着写一个10GB文件需要100秒

10000个这样的文件将花费100万秒(约11.5天)的时间,并将占用100TB或25个标准4TB 3.5英寸驱动器


您可以说服文件系统只为文件分配空间,而不编写任何内容,但据我所知,使用脚本语言无法做到这一点。您最终会得到包含随机数据的文件。

在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文件,考虑到大多数硬盘需要几天甚至几周的时间才能写入这么多数据。