测量PHP性能

时间:2012-04-17 18:20:45

标签: php performance apache

我试图跟踪应用程序的问题[modx]我的服务器上有几个这样的网站[大约10个]我想知道我怎么能看到php在做什么。

这些网站上的页面非常慢,而开发中的相同网站与服务器上的其他php应用程序一样好。

我尝试使用xdebug来了解php在处理这些页面时所做的事情。瓶颈发生的地方,但它似乎只是想对错误做任何事情[没有抛出错误]

有关如何跟踪此问题的任何建议? [linux / Centos5 / php5.2。?/ apache2]

3 个答案:

答案 0 :(得分:2)

Xdebug和webgrind是一个很好的方式,可以看到你的脖子在哪里......

阅读XDEBUG_PROFILEWebgrind

设置php.ini以在每次运行时让xdebug配置文件代码,或者如果传递了特殊参数,则设置webgrind从同一目录中读取xdebug将其配置文件转储到。

Webgrind将向您展示哪些函数和函数集需要最多的时间,它会将其分解并且可以轻松找到速度慢和/或效率低的代码。 (例如,你的脚本在快速查询上调用“PDOStatement->执行”300次[或者调用一次而速度非常慢]占用90%的执行时间)。

答案 1 :(得分:2)

用于查找PHP瓶颈的最常用工具是Xdebug。但是你也应该手动检查代码库。

您需要关注三个不同的领域:

  • 前端表现
  • SQL查询
  • php逻辑本身

..并且对感知速度的影响按此顺序排列。

您应首先运行ySlow,并确保您的网站尽可能遵循指南。

下一步是跟踪执行的SQL查询,并(假设您使用的是mysql)尝试使用EXPLAIN运行它们。另外,检查查询本身。那里可能存在一些极其愚蠢的代码,例如ORDER BY RAND()或在巨大的表中使用LIKE

最后一个阶段将修复它所有人都会仔细查看代码本身。在PHP和JavaScript方面都有。

另外,你应升级到PHP 5.3 ,因为你的版本已经过时了。

答案 2 :(得分:1)

通常当你不知道你在寻找什么时,你无法用xdebug或CMS / Framework中内置的其他插件/调试条等工具来发现它,新的遗物是最简单的解决方案 - 你将能够几分钟后发现瓶颈。

虽然新文物是付费应用,但您可以在前14天免费测试 - 这足以找到问题。

这很棒,因为它集成了您经常使用的所有其他工具和数据源: xdebug,cpu& i / o监控,mysql slowlog,查询日志。 如果你的应用程序在php / DB / frontend / network上运行缓慢,它也会显示。

你应该尝试一下,而不是浪费时间用其他工具进行调试。

这是centos安装指南:https://newrelic.com/docs/php/php-agent-installation-redhat-and-centos