如何进行PHP程序的堆栈转储

时间:2015-01-18 03:09:52

标签: php

大型第三方PHP应用程序需要很长时间(多秒)才能处理某个POST请求。我需要找出需要这么长时间的事情。

在Java领域,采取一些线程转储通常(并不总是)告诉你程序卡在哪里。我可以在PHP中做类似的事情吗?

在这种情况下,debug_backtrace()函数有帮助,因为我在PHP代码中没有特定的位置,我会调用debug_backtrace()。相反,我希望PHP代码开始执行,然后将堆栈跟踪转储大约2秒执行。

1 个答案:

答案 0 :(得分:2)

我建议你看看xdebug并进行适当的分析:http://www.xdebug.org/docs/profiler

您将能够在应用程序中生成所有方法调用的转储,其中包括执行时间。然后,您可以使用KCacheGrind / WinCacheGrind加载和分析它们。