如何跟踪和分析 mod_perl 或 mod_php 应用程序使用的所有低级调用(c 库)?

Posted

技术标签:

【中文标题】如何跟踪和分析 mod_perl 或 mod_php 应用程序使用的所有低级调用(c 库)?【英文标题】:How to trace and profile all low level calls (c libraries) being used by a mod_perl or a mod_php application? 【发布时间】:2009-01-23 15:16:52 【问题描述】:

我曾经在一个网站上看到过一个调用图,该调用图挖掘了由 php 应用程序发起的 Web 请求的最底层库,其中包含调用时间和摘要。在我看来,这是在分析纯 PHP 代码时发现不明显的瓶颈原因的好方法。

类似于 strace 的东西,但细节要多得多。

【问题讨论】:

【参考方案1】:

Rasmus 在他的演讲中多次提到valgrind。如果我没记错的话,它会测量 IO、内存等。可能想看看。

【讨论】:

Rasmus 将 valgrind 与 callgrind 和 KCachegrind 结合使用。这些工具可以在任何基于 C 的系统上使用,包括 Perl 和 mod_perl【参考方案2】:

VTune 之类的工具在这里可以提供帮助。您可以将此工具指向要分析的流程或系统,它将有助于找到性能热点。 VTune 也有调用图模式。

【讨论】:

以上是关于如何跟踪和分析 mod_perl 或 mod_php 应用程序使用的所有低级调用(c 库)?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 mod_perl 发送自定义 http 状态码

如何在 mod_perl2 下运行 Devel::Cover?

如何在 OS X Yosemite 上的 Apache 2.4 中安装 mod_perl 2.0.9?

binmode + mod_perl 2.0.5 + Parse::RecDescent = 分段错误

如何在不重新启动的情况下调试 mod_perl2 模块?

在 mod_perl2 中修改 POST 请求