我在我的网站上遇到了CPU使用问题,正在寻找一种方法来检测(并修复)是什么导致了它。未涵盖的主题this question.
以下是Hakre answer here, 我现在意识到,我需要做的是分析我的PHP调用。
将网站放在我自己的计算机上,运行探查器,并使用这些信息来改进我的网站是否合理?
关于如何以最佳方式做到这一点,还有其他建议吗?
我在我的网站上遇到了CPU使用问题,正在寻找一种方法来检测(并修复)是什么导致了它。未涵盖的主题this question.
以下是Hakre answer here, 我现在意识到,我需要做的是分析我的PHP调用。
将网站放在我自己的计算机上,运行探查器,并使用这些信息来改进我的网站是否合理?
关于如何以最佳方式做到这一点,还有其他建议吗?
它查看每个插件,并为您提供内存、CPU时间和所涉及的SQL查询。
这个SQL Monitor (Wordpress Plugin) 分析SQL性能。
将其与W3 Total Cache (Wordpress Plugin) 而且您应该在任何平台上都能获得更好的性能。
此外,还可以使用瞬态API来存储不需要每次生成的片段。这对低速DB非常有帮助。
我们在XHProf的基础上构建了一个PHP分析器,它也使用callgrind输出格式。与XDebug相比,它的主要优点是大大降低了开销,更好地处理递归函数,以及XHProf风格的评测开始和结束函数,从而实现了自动化的单元测试。
你可以在http://www.exteon.ro/en/products/php-tools/web3tracer
不过,您需要在测试箱上编译并使用它,或者要求您的托管提供商安装它,但他们不太可能这样做。
我不确定是否可以以wordpress插件的形式提供这一切(至少我知道没有可用的插件,我认为现在没有可用的插件),因此您可能需要自己进行一些设置/配置/评测。
是的,在一个新的环境中设置站点是完全合理的,在这个环境中您可以实际运行性能分析器和其他工具。
正如在这里的评论中所提到的,是的,为了获得最佳效果,您需要一个与生产环境非常相似的环境。为了获得更好的结果,您需要在评测时模拟生产服务器上正在发生的通信量、CPU/磁盘/网络使用情况。
理论上这是可以做到的,但根据我的经验,没有人真正做到这一点,原因有二:
配置和维护是一场噩梦。在生产中这样做更容易(也更准确),这就是为什么存在诸如XHProf之类的轻量级分析工具的原因。与Xdebug不同,这些分析器设计为在生产中、按需或以特定采样率运行。如果你买得起的话,New Relic也是一个不错的选择我已经分析WordPress应用程序大约十年了,下面是你需要知道的:99%的性能问题都在application code. 不在服务器配置中,不在磁盘io或RAM量中,不在过度饱和的网络中。但在应用程序代码中。
无论环境如何,如果应用程序正在执行以下操作:
add_action( \'init\', function() {
wp_remote_get( \'https://some-third-party-service.org/api/version-check/\' );
} );
如果第三方服务需要1秒的响应时间,那么WordPress网站上的每一个页面加载都将支付1秒的罚款。每一个仅有一个的时间在Windows、Linux和macOS上。使用1G RAM或32G RAM。使用SSD磁盘或旧的旋转磁盘。您是否发现了运行profiler 在本地计算机上?当然,您可以:
是的,在生产环境中,甚至在共享主机上,使用PHP级别的工具(如查询监视器和调试栏系列)都可以很容易地发现这种幼稚的代码。但是,如果他们没有发现问题,那么在一个有真正的分析工具的环境中,获取生产站点的完整副本,在本地或一些廉价的VP上运行就完全可以了。是的,在你自己的电脑上描述网站是完全合理的。您将需要安装环境,包括Web服务器,并使用所选的探查器来分析站点。
在Windows上,由于Web平台安装程序,本地WordPress安装非常容易。一键安装WordPress,包括所有必备组件from here.
我遇到过this great article 在美味大脑博客上。他们提到Query Monitor 和Blackfire 那里