6

如果您不熟悉内部结构,如何确定 PHP 代码的性能影响?有没有办法弄清楚你的代码是如何被执行的(除了简单的负载测试)?我正在寻找诸如内存使用、算法执行时间之类的东西。

也许 Joel 会说,“先学习 C,然后再阅读内部原理”,但我现在真的没有时间学习 C(尽管实际上我很愿意)。

4

5 回答 5

4

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

于 2008-09-09T00:56:19.663 回答
3

如果您不熟悉 valgrind 或类似内容,请添加到@Jordi Bunster 的答案中......

在 Xdebug 中进行分析后,您可以在 KCacheGrind 或 WinCacheGrind 中打开转储的配置文件,以获取代码中花费时间的图形视图。

幸运的是,xdebug 文档也详细解释了这一点以及如何解释结果:http: //xdebug.org/docs/profiler

于 2008-09-09T08:10:05.300 回答
0

即使您熟悉内部结构,您仍然应该对您的假设进行负载测试。我喜欢使用PEAR Benchmark包来比较不同的代码。

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

于 2008-09-10T15:08:58.047 回答
0

您可以使用低级方法,例如粘贴microtime()memory_get_usage()调用代码,也可以使用现有的分析解决方案之一:

  1. Xdebug(免费,开源)
  2. Zend Studio/调试器分析(商业)
  3. Zend 服务器代码跟踪(商业)
  4. xhprof(免费,开源)

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

此外,PHP CGI 二进制文件有一个带有-T选项的基准测试模式,许多人尝试运行php-cgi -T 100 yourscript.php来做一个穷人的基准测试。

于 2010-02-09T06:37:16.160 回答
0

请参阅SD PHP Profiler,了解一种可以以图形方式向您显示 PHP 应用程序花费时间的工具。

于 2010-07-03T17:28:55.317 回答