Perl发现 - 返回内存不足

时间:2018-05-19 07:13:44

标签: perl find out-of-memory

我尝试使用perl命令行显示690GB目录中的前10个文件。由于它有很长的文件列表,我的命令以Out of Memory错误结束

perl -MFile::Find -wE '
    find(sub { say -s $_, " $File::Find::name" }, "/opt/app")
' \ | sort -nr | head -n10

如何优化此命令以获得所需的输出。我已经使用find命令列出文件,但是至少需要15分钟来处理。

1 个答案:

答案 0 :(得分:4)

内存交易速度(未经测试),

perl -MFile::Find -wE'
    find(sub{
        @s = sort { $b->[0] <=> $a->[0] } [ -s $_, $File::Find::name ], @s;
        splice(@s, 10);
    }, "/opt/app");
    say @$_ for @s;
'