大型第三方PHP应用程序需要很长时间(多秒)才能处理某个POST请求。我需要找出需要这么长时间的事情。
在Java领域,采取一些线程转储通常(并不总是)告诉你程序卡在哪里。我可以在PHP中做类似的事情吗?
在这种情况下,debug_backtrace()
函数不有帮助,因为我在PHP代码中没有特定的位置,我会调用debug_backtrace()
。相反,我希望PHP代码开始执行,然后将堆栈跟踪转储大约2秒执行。
答案 0 :(得分:2)
我建议你看看xdebug并进行适当的分析:http://www.xdebug.org/docs/profiler
您将能够在应用程序中生成所有方法调用的转储,其中包括执行时间。然后,您可以使用KCacheGrind / WinCacheGrind加载和分析它们。