有多个进程时如何使用NYTProf

rvk*_*ddy 4 perl devel-nytprof

在我的应用程序中,我有多个过程。最初,我通过运行.pl文件启动一个Perl进程,然后依次调用另外两个.pl脚本来创建2个新进程。如何使用Profile这样的代码。我做了NYTProf,合并了结果并用html打开,但是所有与功能有关的分析信息都丢失了。剖析此类应用程序的信息会有所帮助吗?

Tim*_*nce 5

文档PROFILING部分提供了一个示例:

PERL5OPT = -d:NYTProf

当您无法更改用于运行要分析的脚本的perl命令行时,这也非常方便。通常,您需要启用“ addpid = 1”选项,以确保perl的任何嵌套调用都不会覆盖配置文件。

addpid选项的文档说明:

将当前进程ID附加到文件名的末尾。这样可以避免并发或连续的进程覆盖同一文件。如果在性能分析期间检测到派生,则子进程将自动将进程ID添加到文件名中。

您说您“合并结果”。我想你的意思是使用nytprofmerge。那只能用于合并由完全相同的源代码生成的多个结果文件。例如,通过分叉创建子进程的进程,或多次运行未更改的脚本。在您的情况下,您是从不同的脚本生成概要文件,因此应将每个概要文件输出用于生成单独的报告而不合并。

您说“缺少与功能有关的所有性能分析信息”。在向您提供帮助之前,我将需要有关您如何对代码进行性能分析和生成报告的更多信息。