我正试图找到最好的方法来监控哪些PHP代码/函数、MySQL请求和/或插件正在减慢网站页面的速度。
我知道有很多不同的选择,包括wordpress插件和涉及firebug(FireHP)的解决方案,但你们觉得什么是最好的方法?
就个人而言,我觉得理想的解决方案是拥有某种类型的代码,这种代码可以在每次wordpress安装时默认安装。只有在URL的末尾添加了一个可选条目,才能执行任何调试/监视/报告,如=调试。为了安全起见,最好先登录wordpress管理区域并创建一个临时调试密钥,该密钥将创建一个散列密钥并将其附加到url(如debugkey=v09098v09aq2ov1a8923),该url仅可用30分钟。
但是回到实际的调试信息。。。我觉得在很多情况下使用firebug都很好,但我觉得如果可以在任何URL中附加其他内容,例如覆盖特定页面上使用的所有函数、挂钩或过滤器,以及每个URL的执行时间,这将是很有价值的。
无论如何。。。我想在座的许多人肯定也面临过这个问题,因此我会很感激你们利用任何解决方案来解决你们的问题。
请为可能阅读本说明的其他人概述有关安装的任何细节以及如何正确使用它。
UPDATED运行专用Linux服务器
SO网友:Peter Rowell
您没有指出您的服务器安排是什么。如果您处于共享托管环境中,那么您的选择有限。如果它是您自己的服务器,那么您可以安装各种分析工具来了解全局。看看this thread 以上是一些选项。
此外,交付页面的速度慢可能是许多因素造成的,其中只有少数与PHP/MySQL相关。您可能会遇到DNS问题、客户端或服务器端的网络拥塞、计划不周的页面,这些页面有大量的JS加载早而不是晚,等等。
要测试基本HTML页面的网络连接+服务器交付的基本食物链,请尝试使用Apache Benchmark 程序仔细的你可以用这只小狗把服务器打得一塌糊涂,如果你在你的主机上模仿DOS攻击,你的主机公司也不会觉得好笑。
Update: 好的,专用的Linux服务器为您提供了重要的选项。特别是,我会加倍努力xdebug 它能够分析代码的执行情况。令人惊讶的是,在探查器下运行几次,就可以很快地将明亮的光线照射到一些正在吞噬机器的看似无辜的功能上。
如果没有什么东西会立即出现在你面前,那么就寻找那些似乎花费了比应该花费的更多时间(无论这意味着什么)和/或似乎经常被呼叫的例程。后者通常可以通过简单地缓存特定值的结果来纠正。如果这是一个涉及使用不同参数调用不同的高成本函数的一般问题,您可以查看memoizing 受影响的功能。我已经在Python中多次这样做了,但没有在PHP中这样做。这里有一篇关于one person\'s approach. 有更多关于这个主题的帖子。