3


我有一个非常慢的 foswiki 安装(未缓存页面大约需要 60 秒)。根据http://foswiki.org/Support/NYTProfDebugging使用以下命令,我尝试使用 NYTProf 分析安装:

> sudo -u www-data NYTPROF="file=/tmp/nytprof.out:addpid=1:endatexit=1" perl -wTd:NYTProf view -topic Some.Topic -username MyUsername

141当我使用探查器运行脚本时,该脚本失败并显示退出代码。如果我在没有探查器(远程d:NYTProf)的情况下运行它,它会成功退出并产生输出。

分析后,我在 /tmp 目录中获得了一堆配置文件:

nytprof.out.[841-1860]

但是当我尝试合并这些文件时,第一个文件出现错误:

> nytprofmerge nytprof.out.*
Profile data incomplete, inflate error -5 ((null)) at end of input file, perhaps the process didn't exit cleanly or the file has been truncated  (refer to TROUBLESHOOTING in the documentation)

我可以在没有第一个文件的情况下合并文件,但结果没有用,仅显示 87 次调用,仅Foswiki::Sandbox::CORE:open此而已。

我有机会获得有效的分析结果吗?或者在这种情况下我可以使用其他工具吗?

4

2 回答 2

2

我不确定为什么不能让 NYTProfiler 工作,我们已经用它来解决 Foswiki 2.0.2 中的一些性能问题,这些问题在 Foswiki 2.0.3 中已部分解决。有几个问题正在发生,但一个主要原因是我们在内部转换为 UNICODE,以及 5.20 之前的 perl 版本中的一些 Perl 正则表达式问题。https://rt.perl.org/Public/Bug/Display.html?id=66852

Foswiki 2.0.3 进行了以下性能更新:

  • 将一些大量调用的内部函数从正则表达式更改为 index()
  • 更改了 EditRowPlugin 以生成更少的 html,需要在渲染模块中通过正则表达式进行处理。
  • 进行了一些其他改进以减少对主题的过度重读。

如果 2.0.3 没有显着帮助,请检查问题页面中是否有大表。如果是这样,您可以尝试禁用 EditRowPlugin 并使用 EditTablePlugin。

除此之外,您可以尝试我们在 IRC 上的官方支持频道#foswiki,http ://irclogs.foswiki.org/

于 2015-11-23T20:00:25.517 回答
1

当我使用探查器运行该脚本时,该脚本失败并显示退出代码 141。

这表明该进程收到了 SIGPIPE 信号。sigexit选项可能会有所帮助

如果我在没有分析器的情况下运行它......它会成功退出并产生输出。

您正在使用sudo所以权限可能是一个问题,但这只是一个猜测。您需要深入挖掘以确认是否收到了 SIGPIPE 以及原因。

我对 foswiki 不熟悉。也许那个社区中的某个人会更有帮助。

于 2015-11-12T14:23:59.117 回答