我的环境包括带有Zend Server CE和Ubuntu Server的OS X,Apache 2.使用Symfony 1.4和& S进行开发。 PHP 5.3上的学说。
我正在搜索可以与命令行PHP脚本以及Apache调用的PHP一起使用的分析器。目前,我对命令行的需求实际上比网络脚本更迫切。
我已经通过记录microtime()间隔做了一些强力计时,效果很好,但是我希望能够获得每个被调用函数的总时间,而不需要手动编码。
虽然我主要关心的是时间分析,但内存分析器也非常有用。与使用microtime()类似,我偶尔不得不在实例化大型对象或集合之前和之后重复调用memory_get_usage(),以了解它们的占用空间有多大。
答案 0 :(得分:4)
XDebug可以进行分析。嗯...它可以为您收集分析数据。然后,您可以使用其他应用程序来分析此数据。请点击链接获取更多信息。
答案 1 :(得分:3)
webgrind对我来说效果很好
答案 2 :(得分:1)
这是我非常满意的最终解决方案。
我尝试通过以下命令安装XDebug 2.1.1:
pecl install xdebug
然而,这种错误导致失败:
找不到autoconf。请检查 你的autoconf安装和 $ PHP_AUTOCONF环境变量。 然后,重新运行此脚本。错误: `phpize'失败
经过一番搜索,我遇到了其他在OS X上试过这个的人。幸运的是,他们提到安装Apple Xcode会提供autoconf,phpize和其他所需的工具。
我得到了Xcode 3并安装了它,然后重新尝试pecl install xdebug
并且它工作得很漂亮。在学习了如何在PHP的CLI实例中启用xdebug并找出输出文件的位置之后,我转到了Webgrind。在查看我的第一个webgrind报告的几分钟内,我很高兴地确定了我的symfony任务的优化区域。这太棒了。
同样在我的搜索中,我遇到了this promising page about how to use Xdebug for MEMORY profiling。我还没有尝试这个,但想在这里添加它,以防它帮助其他任何人。
我收到了一条有用的评论,其中包含相关讨论的链接和两个有用的部分答案。我给了每个响应者一个upvote并表明了这一点。
我希望S.O.似乎没有强调接受单一答案,但既然如此,我正在写一个更完整的答案并接受它但确保给所有有用的响应者提供赞成。再次感谢。