评论会影响Perl的性能吗?
发布时间:2020-12-15 21:49:50 所属栏目:大数据 来源:网络整理
导读:我正在优化一些经常运行的Perl代码(每个文件每天一次). 评论是否会降低Perl脚本的速度?我的实验倾向于否: use Benchmark;timethese(20000000,{ 'comments' = '$b=1;# comment ... (100 times)','nocomments' = '$b=1;'}); 提供几乎相同的值(除了噪音). Ben
我正在优化一些经常运行的Perl代码(每个文件每天一次).
评论是否会降低Perl脚本的速度?我的实验倾向于否: use Benchmark; timethese(20000000,{ 'comments' => '$b=1; # comment ... (100 times) ','nocomments' => '$b=1;'}); 提供几乎相同的值(除了噪音). Benchmark: timing 10000000 iterations of comments,nocomments... comments: 1 wallclock secs ( 0.53 usr + 0.00 sys = 0.53 CPU) @ 18832391.71/s (n=10000000) nocomments: 0 wallclock secs ( 0.44 usr + 0.00 sys = 0.44 CPU) @ 22935779.82/s (n=10000000) Benchmark: timing 20000000 iterations of comments,nocomments... comments: 0 wallclock secs ( 0.86 usr + -0.01 sys = 0.84 CPU) @ 23696682.46/s (n=20000000) nocomments: 1 wallclock secs ( 0.90 usr + 0.00 sys = 0.90 CPU) @ 22099447.51/s (n=20000000) 如果我将注释和无注释版本作为单独的Perl脚本运行,我会得到类似的结果. 这似乎是违反直觉的,如果没有别的,解释器每次都需要将注释读入内存. 解决方法
Perl是一种即时编译语言,因此注释和POD对运行时性能没有影响.
注释和POD对编译时间有一个微不足道的影响,但它们是如此容易和快速,Perl解析它几乎不可能测量性能命中.您可以通过使用-c标志来自行查看. 在我的Macbook上,一个包含2个语句和1000行70个字符注释的Perl程序需要相同的时间来编译为1000行空注释,只有2个打印语句.确保运行每个基准测试两次以允许您的操作系统缓存文件,否则您要进行基准测试的是从磁盘读取文件的时间. 如果启动时间对您来说是一个问题,那不是因为评论和POD. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |