微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

评论会影响Perl的性能吗?

我正在优化一些经常运行的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.

原文地址:https://www.jb51.cc/Perl/172171.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐