如何快速测试我的PHP脚本?

时间:2009-04-24 10:09:48

标签: php zend-framework timer performance

我的脚本运行缓慢,我想知道如何计算时间并查看哪些修复程序可以提高速度。是否有某种PHP计时器?

更新:我想我应该澄清......运行缓慢的脚本是我的邮件列表脚本,它向列表中的每个人发送一封电子邮件。所以我正在遍历一系列订阅者并逐个向他们发送电子邮件。它太慢了,我认为看看迭代数组需要多长时间会很有趣。所以我正在寻找一种快速简便的方法来测试它。

4 个答案:

答案 0 :(得分:1)

您可以衡量页面的加载时间并根据需要进行调整。

我喜欢像http://www.phpbench.com/这样的网站,它们会告诉你更多关于php的基本需求。

使用Zend Framework编写php时,实际上并没有真正说出你的代码。你遵循zend编码标准吗?

http://www.php.net/getrusage可能对您的时间安排有用。

祝你好运!

编辑:getrusage函数的额外链接(也在php.net页面上提到)。

编辑2:对于您的邮件列表,您可以查看phpbench.com,例如循环前的计数,这样可以节省一些时间。

你是如何发送邮件的?这可能是一个瓶颈。

祝你好运!

答案 1 :(得分:1)

我所知道的最好的事情是使用分析器。我选择的探查器是Xdebug,它有一个内置的探查器,并且在PHP设置中安装它非常容易。启动并运行后,它可以为您提供各种调试和分析信息,并且可以通过令人惊叹的kCacheGrind tool读取Xdebug的输出格式(可视化和报告堆栈并绘制应用程序流程图< / em>)如果你是一个快乐的Linux露营者。没有这些工具我该怎么做??

此外,对于Zend Framework而言,速度方面存在一些陷阱,主要与不使用Zend_Cache类或者可能应该使用Zend_Registry类的复杂类Hiearchies有关。

快乐的分析。

答案 2 :(得分:0)

如何使用队列?对我来说似乎是一个好主意,因为随着列表的增长,有一天你会达到邮件服务器的极限。这个队列有一个popular implementation in PEAR,但基本上你需要的只是一个cron作业和一个数据库表。

我正在ZF中建立类似的东西,所以我很想知道会发生什么!

答案 3 :(得分:0)

我最终使用了一个类似于这个的计时器类:http://forum.codecall.net/php-tutorials/4254-php-timer-class.html

我刚刚在循环开始时启动了一个计时器,并在每次迭代结束时记录了持续时间。平均而言,每封电子邮件需要3到4秒!每封电子邮件爆炸五分钟有点太多了。是时候重构了......