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