我想知道是否有任何linux命令可以更快地执行perl文件?
我使用以下命令来检查执行时间:
time ./rspd.pl
输出:
1.003u 0.480s 3:34.90 0.6% 0+0k 56+5520io 0pf+0w
我的一些 Perl 脚本需要很长时间才能完成在这种情况下我可以使用任何其他 Linux 命令来加快执行速度吗?
答案1
这取决于。
一般来说,没有。你不能那样做。
然而,有时你可以。例如,假设您有一个程序,可以对字符串进行一些高级操作并独立地更改每一行。然后,您可以使用 GNU parallel
- 旨在并行运行程序的程序。
但是,您需要知道什么你的程序做了什么,瓶颈是什么。默认情况下,某些程序将自身划分为更小的子进程,因此您不会获得加速。有些程序大量使用光盘,因为这是瓶颈,所以你不会得到任何改进。有些程序的逻辑不能用于分割的文件。
GNU Parallel 将文件分成更小的部分,并在每个部分上运行脚本,合并结果。如果您运行类似awk
更改第一列和第二列的操作,则效果很好。当您运行一个更改为 N 的程序时,这效果不太好,其中 N 是您到目前为止dog
看到该单词的次数。dog
答案2
唯一的答案是不。没有这样的通用命令可以加速另一个任意可执行文件(例如 Perl 脚本)。
为了让你的rspd.pl
速度更快,你应该首先知道它在做什么。为什么慢? CPU、RAM、网络还是磁盘 I/O?这称为“分析”,例如参见
https://stackoverflow.com/questions/4371714/how-do-i-profile-my-perl-programs
答案3
不。
您能做的最好的事情就是使用命令分布在不同的线程中,因此可能分布在不同的内核中,使其运行得更快。例如,看看GNU 并行。
答案4
将所有perl库存储在ram中,因此当perl脚本使用大量库时,执行速度会更快。