【问题标题】:Perl profiler breaks call to XML parserPerl 探查器中断对 XML 解析器的调用
【发布时间】:2020-11-18 07:18:41
【问题描述】:

我是 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 profiler 选项,我就可以可靠地重现错误及其缺失。

我确定有问题的行就是我提出的那一行,因为我后来在它周围添加了调试打印。发生错误时,此行之前的打印显示在错误信息之前,此行之后的打印不影响输出。

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

我正在使用 Perl 5.10.0。

【问题讨论】:

  • 嘿,那个XML::Simple 是很久以前的了,而且是Perl 版本……被锁在时间胶囊里了? :) 但是,您可以使用现代工具对其进行分析,而不是使用另一个过时(已弃用!)的片段...

标签: xml perl profiler


【解决方案1】:

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

使用Devel::NYTProf

【讨论】:

  • 就像 Devel::DProf 不鼓励自己使用一样,XML::Simple 也是如此。这是一个可怕的模块(而且它的速度很慢!)我更喜欢 XML::LibXML
猜你喜欢
  • 2013-11-15
  • 2013-07-24
  • 2011-05-09
  • 1970-01-01
  • 2012-09-10
  • 1970-01-01
  • 1970-01-01
  • 2013-07-12
  • 1970-01-01
相关资源
最近更新 更多