代码之家  ›  专栏  ›  技术社区  ›  Mithaldu

有没有关于Perl5.10.0中的性能回归有多糟糕的基准测试?

  •  2
  • Mithaldu  · 技术社区  · 16 年前

    我目前在一个高可用性环境中工作,所以性能对这家公司来说有点问题。我今天发现他们运行的是Perl5.10.0,根据 perl5101delta 在列表分配中有性能回归。既然我们使用的是Debian,那么更新就不那么容易了,所以我正在寻找一些统计数据来说明更新对我们来说有多大的改进。

    1 回复  |  直到 16 年前
        1
  •  7
  •   mfontani    16 年前

    其他人的代码基准只会显示这些其他人的代码有什么不同。

    如果您还没有这样的代码,我建议您创建一些代码来跟踪系统的当前性能,尤其是对于您认为最受关注的位,或者性能降低会对公司产生负面影响的位。

    对于您自己的代码,找出哪个是哪个的一个好方法是对其进行基准测试并度量其当前性能。

    一旦你有了这些,并且与你想从或迁移到的特定版本完全无关,你就可以使用App::perlbrew安装你想迁移到的任何版本,安装你需要的模块,让App::cpanm运行基准测试,然后“简单地”运行你的基准测试/测试套件。

    作为一个额外的好处,您还可以跟踪Perl的开发版本,并向perl5 porters提供有价值的反馈,以便在那时可以修复回归 之前 下一个主要版本。

    补充:为了解决特定的问题,关于Perl的“可测量的性能下降列表分配”回归,您可以通过perlbrew安装各种Perl,并使用以下工具对它们进行基准测试:

    use Benchmark qw/:all/;
    sub test_this {
      my ($a,$b,@c) = @_;
      1;
    }
    timethis(10_000_000, "test_this(1..10);");
    

    对Perl5.10和Perl5.10.1或其他Perl执行此操作,请参见。

    对于我的机器,5.10.1产生540k/秒,而5.10.0产生498k/秒。