perl - 如何分析我的 Perl 程序?

标签 perl profiling

我需要提高 Perl 应用程序的性能。如何找到慢点?

<小时/>

这是 official perlfaq 的问题。我们是importing the perlfaq to Stack Overflow .

最佳答案

(这是 official perlfaq answer ,减去任何后续编辑)

Devel 命名空间有几个模块,您可以使用它们 分析您的 Perl 程序。 Devel::DProf模块随 Perl 一起提供,您可以使用 -d 开关调用它:

$ perl -d:DProf program.pl

DProf 下运行程序后,您将获得一个 tmon.out 文件 与配置文件数据。要查看数据,您可以将其转换为 使用附带的 dprofpp 程序生成人类可读的报告 开发::DProf:

$ dprofpp

您还可以使用 -p 一步完成分析和报告 切换到dprofpp:

$ dprofpp -p program.pl

Devel::NYTProf (纽约时报分析器)同时进行语句和子例程分析。它可以从 CPAN 获得,您还可以调用 使用 -d 开关:

$ perl -d:NYTProf some_perl.pl

DProf一样,它创建一个包含您的个人资料信息的数据库 可以变成报告。 nytprofhtml 命令将数据转换为 类似于 Devel::Cover 的 HTML 报告报告:

$ nytprofhtml

CPAN 还有其他几个分析器,您可以在同一个分析器中调用它们 时尚。您可能还对使用 C 感兴趣 测量并比较代码片段。

您可以在Perl 编程第 20 章中阅读有关分析的更多信息, 或掌握 Perl,第 5 章。

perldebguts如果需要,创建自定义调试器的文档 创建一种特殊类型的分析器。 Brian d Foy 描述了这个过程 Perl Journal"Creating a Perl Debugger" ,和 "Profiling in Perl" .

Perl.com 有两篇关于分析的有趣文章:"Profiling Perl" , 作者:Simon Cozens,和 "Debugging and Profiling mod_perl Applications" ,作者:弗兰克·怀尔斯。

Randal L. Schwartz 在 "Speeding up Your Perl Programs" 中撰写了有关分析的文章用于 Unix Review"Profiling in Template Toolkit via Overriding" Linux 杂志

关于perl - 如何分析我的 Perl 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4371714/

相关文章:

python - 为什么 python 中的函数/方法调用很昂贵?

android - Android 上的 OProfile

perl - 当我尝试连接到 Oracle 11g 时,为什么 Perl 的 DBI 会提示 "failed: ERROR OCIEnvNlsCreate"?

linux - 需要检查文件是否存在?

regex - 使用捕获组匹配重复仅返回最终匹配值

perl - 是否有任何为 Perl 编写 POD 注释的约定?

android - 无法在 Android 上使用 Perl 脚本创建文件(使用 perl-android-apk)

c++ - 探查器输出中线程并发开销时间的含义是什么?

python - 多线程 - 如何尽可能多地使用 CPU?

c++ - 使用 Visual Studio 进行分析,在函数的右括号或左括号上包含较大的包含样本百分比? C++