如何配置我的Perl程序?

per*_*faq 37 perl profiling

我需要提高Perl应用程序的性能.我怎样才能找到慢点?


这是来自官方perlfaq的问题.我们将perlfaq导入Stack Overflow.

bri*_*foy 46

(这是官方的perlfaq答案,减去任何后续编辑)

Devel命名空间有几个模块,你可以用它来分析你的Perl程序.该杰韦利:: DProf模块自带Perl和您可以用调用它-d开关:

$ perl -d:DProf program.pl
Run Code Online (Sandbox Code Playgroud)

运行您的程序后DProf,您将获得包含配置文件数据的tmon.out文件.要查看数据,您可以使用dprofpp随附的程序 将其转换为人类可读的报告Devel::DProf:

$ dprofpp
Run Code Online (Sandbox Code Playgroud)

您还可以通过-p 切换到一步来执行分析和报告dprofpp:

$ dprofpp -p program.pl
Run Code Online (Sandbox Code Playgroud)

杰韦利:: NYTProf(纽约时报探查)同时做两语句和子程序剖析.它可以从CPAN获得,您也可以使用-d开关调用它:

$ perl -d:NYTProf some_perl.pl
Run Code Online (Sandbox Code Playgroud)

就像DProf,它创建了一个可以转化为报告的配置文件信息数据库.该nytprofhtml命令将数据转换为类似于Devel :: Cover报告的HTML 报告:

$ nytprofhtml
Run Code Online (Sandbox Code Playgroud)

CPAN还有其他几个可以以相同方式调用的分析器.您可能还有兴趣使用C来衡量和比较代码片段.

您可以在Programming Perl,第20章或Mastering Perl,第5 章中阅读有关分析的更多信息.

perldebguts文档如果您需要创建一种特殊的分析器,则创建一个自定义调试器.brian d foy描述了Perl Journal中的过程,"创建Perl调试器""Perl中的分析".

Perl.com有两篇关于性能分析的有趣文章:Simon Cozens的"Profiling Perl"和Frank Wiles的"Debugging and Profiling mod_perl Applications".

兰德尔·L·施瓦茨在写的剖析"加快你的Perl程序"Unix的评论"剖析在通过重写模板工具包"Linux杂志.


Ran*_*rtz 13

我已经切换到使用Devel :: NYTProf,这是Perl组合的最佳分析,最初由纽约时报的人们提供.

  • 谢谢兰德尔!(我知道这是一个老帖子..最初错过了它).蒂姆·邦斯已经维持了一段时间. (3认同)