2008-09-09 43 views
6

如果您不熟悉内部部件,如何确定PHP代码的性能后果?有没有办法找出你的代码是如何执行的(除了简单的加载测试)?我正在寻找内存使用情况,算法执行时间等问题。也许乔尔会说,“学习C,然后阅读内部”,但我现在真的没有时间学习C(尽管我真的很喜欢)。确定PHP代码的性能结果

回答

4

使用Xdebug扩展来剖析PHP代码。

3

如果你不熟悉的valgrind或类似的,然后添加到@Jordi本斯特的答案...

当你已经在Xdebug的剖析上,你可以在KCacheGrind打开倾倒轮廓文件或WinCacheGrind获取代码中花费时间的图形视图。

幸运的是Xdebug的文件还详细解释了这个问题,以及如何解释结果:http://xdebug.org/docs/profiler

0

即使你熟悉的内部,你还是应该进行负载测试你的假设。我喜欢使用PEAR Benchmark包来比较不同的代码。

如果你能隔离你的代码,你可以保持你的负载测试简单。一个典型的技术是运行每个选项几次,看看哪一个更快。例如,如果你有一个类,你可以编写一个测试用例,并通过它的步调并运行几次。

+0

不要挂在这样的微观优化上。每个PHP Web应用程序都应该通过操作码缓存运行,这使得微型优化非常多余。加载测试已完成的应用程序要好得多,因为您可以看到时间实际正在进行的时间并专注于该时间 – Polsonby 2008-09-23 21:40:13

0

可以使用低级别的方法,如坚持microtime()memory_get_usage()调用到代码,也可以使用现有的配置解决方案之一:

  1. Xdebug(免费,开源)
  2. Zend Studio/Debugger分析(商业)
  3. Zend Server Code Tracing(商业)
  4. xhprof(免费,开源)

像往常一样,商业工具具有很好的图形用户界面和漂亮的图片,但花费金钱,免费的是免费的,但您可能需要投入更多时间。

此外,PHP CGI二进制与-T选项有一个基准模式,你很多尝试运行php-cgi -T 100 yourscript.php做一个穷人的基准。

0

请参阅SD PHP Profiler了解如何使用图形方式向您显示PHP应用程序花费时间的工具。