Perl 探查器中断对 XML 解析器的调用

Perl profiler breaks call to XML parser

我是 Perl 的新手,我需要提高别人编写的应用程序的性能。

根据 this question 的最佳答案,我正在尝试使用 DProf。

当我用 -d:DProf 调用程序时,出现以下错误:

Options must be name=>value pairs (odd number supplied) at <file and line>

相关行仅包含

my $xml = XMLin($FileName, KeyAttr => { server => 'name' }, ForceArray => ['Package','Sensor']);

我找到了该函数的文档 here,调用似乎是正确的。更自信的是,如果没有分析器,错误就不会发生。只需在 Perl 可执行文件和主应用程序文件的路径之间添加和删除 -d:DProf 探查器选项,我就可以可靠地重现错误及其缺失。

我确定违规行就是我提供的行,因为我后来在其周围添加了调试打印。发生错误时,此行之前的打印出现在错误信息之前,此行之后的打印不影响输出。

为什么会发生这种情况,我如何分析此应用程序?

我正在使用 Perl 5.10.0。

Devel::DProf 将自己描述为“已弃用的 Perl 代码分析器”。有了这样的描述,我预计会有问题!

使用Devel::NYTProf.