Perl程序性能调试之dprofpp

Posted Tcler

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Perl程序性能调试之dprofpp相关的知识,希望对你有一定的参考价值。

要调试一个程序的性能,profiling是其中一个很有效的方式。

Perl的安装包自带有一个模块`Devel::DProf`用于性能调试。


Quick Start


运行程序,通过`-d:DProf`选项启用profiling.

程序执行完毕后,profiling数据存储在当前目录下的`tmon.out`文件中。

运行程序`dprofpp`来解析文件`tmon.out`并输出报告。

Perl程序性能调试之dprofpp

然后就是解读报告来找出性能的瓶颈,然后进行针对性的优化。


dprofpp 使用概要


`dprofpp`程序的默认输出是按照函数的exclusive time排序,输出用时最多的前15个函数。


  * 选项`-I`:输出 inclusive time,默认的是exclusive time

  * 选项`-O 15`:输出指定数目的记录,默认值是15

  * 选项`-l`:按照函数的调用次数排序

  * 选项`-v`:按照函数的平均执行时间排序

  * 选项`-t`:输出各函数的调用顺序


tmon.out 的文件格式


文件`tmon.out`的内容的格式如下


  * `+` 表示函数开始执行

  * `-` 表示函数结束执行

  * 每行对应的数字分为是 user time, system time, clock time,单位是ticks

  * tick的大小可以由第二行`$hz=100`得出。


更强大的Devel::NYTProf 


目前`Devel::DProf`已经不被建议使用,而是由更新更强大的`Devel::NYTProf `所取代。


虽然如此,考虑到`Devel::NYTProf `也许并没有预先安装你的开发环境中,很多时候还是值得先拿`Devel::DProf`来试一试。很多时候,也基本够用。




受限于移动客户端屏幕大小对于阅读代码的限制,文中的代码部分使用了截图。点击文章底部的“阅读原文”可以移步原文链接。




欢迎关注 Tcler : 从程序看世界,程序它会说话。


长按二维码识别关注 Tcler


以上是关于Perl程序性能调试之dprofpp的主要内容,如果未能解决你的问题,请参考以下文章

性能工具之 Java 调试工具 JDB

性能工具之Java调试工具BTrace入门

VS2015--win32工程配置的一些想法之在 Visual Studio 2015 中进行调试的同时分析性能

性能工具之调试工具 GDB(你以为性能分析中用不到吗?)

性能分析之代码调试-动态修改内存变量值(C/C++)

VS2015--win32project配置的一些想法之在 Visual Studio 2015 中进行调试的同一时候分析性能