在计算机语言基准游戏中提高Perl的chameneos-redux的速度

Rob*_*t P 9 optimization perl

曾经看过计算机语言基准游戏(以前称为Great Language Shootout)?

Perl目前在那里有一些相当健康的比赛.在我看来,可能还有一些地方可以改善Perl的分数.最大的一个是现在的chameneos-redux脚本 - Perl版本运行的语言最差:比C基线解决方案慢1,626倍!

关于如何制作和优化程序有一些限制,并且Perl的解释运行时惩罚,但是1,626次?必须有一些东西可以让这个程序的运行时间缩短.

看一下源代码挑战,如何提高速度?

Zai*_*aid 6

我通过分析器运行了源代码Devel::SmallProf.配置文件输出有点过于冗长,无法在此处发布,但您可以自己查看结果$ perl -d:SmallProf chameneos.pl 10000(除非您真的想要,否则无需为6000000会议运行!)有关Perl中某些性能分析工具的更多详细信息,请参阅perlperf.

事实证明,使用信号量是主要的瓶颈.占用总CPU时间的大部分用于检查信号量是否被锁定.虽然我没有足够的时间来查看源代码使用信号量的原因,但可能是因为您可以完全使用信号量.这可能是你提高代码性能的最好机会.