我如何使用PHP代码分析器与Symfony CLI脚本


How can I use a PHP code profiler for with Symfony CLI scripts?

我的环境包括OS X with Zend Server CE和Ubuntu Server, Apache 2。使用Symfony 1.4进行开发PHP 5.3.

我正在寻找一个可以与命令行PHP脚本以及apache调用的PHP一起使用的分析器。目前,我对命令行的需求实际上比web脚本更迫切。

我已经通过记录microtime()间隔做了一些蛮力计时,效果很好,但我希望能够得到每个函数被调用的总时间,而不需要那么多的手工编码。

虽然我主要关心的是时间分析,但内存分析器也非常有用。与使用microtime()类似,我有时不得不在实例化大型对象或集合之前和之后重复调用memory_get_usage(),以了解它们的占用空间有多大。

XDebug可以执行分析。嗯…它可以为您收集分析数据。然后可以使用其他应用程序来分析这些数据。点击链接获取更多信息

webgrind对我来说真的很好用

这是我很满意的最终解决方案。

我尝试安装XDebug 2.1.1通过命令:

pecl install xdebug 

然而,这是失败的悲惨的错误:

找不到autoconf。请检查您的自动配置安装和$PHP_AUTOCONF环境变量。然后,重新运行此脚本。错误:phpize的失败

经过一番搜索,我发现有人在OS x上尝试过这个,幸运的是,他们提到安装Apple Xcode将提供autoconf, phpize和其他所需的工具。

我得到了Xcode 3并安装了它,然后重新尝试了pecl install xdebug,它工作得很好。在学习了如何在PHP的CLI实例中启用xdebug并弄清楚输出文件的位置之后,我转向Webgrind。在查看我的第一个webgrind报告的几分钟内,我就高兴地指出了我的symfony任务需要优化的领域。这真是太棒了。

在我的搜索中,我偶然发现了这个关于如何使用Xdebug进行内存分析的有前途的页面。我还没有尝试过,但我想把它添加到这里,以防它对其他人有所帮助。


我收到了一条有帮助的评论,上面有一个相关讨论的链接和两个部分答案,都很有帮助。我给每个回复者都点了赞,并表示赞同。

我希望S.O.不要把重点放在接受单一的答案上,但既然如此,我正在写一个更完整的答案,接受它,但确保给所有有帮助的响应者点赞。再次感谢。