使用 XHProf 分析查找 WordPress 性能瓶颈,针对优化,提高性能
小本本的WordPress性能优化
性能差是WordPress广为诟病的一个特点,有个木桶理论说一只水桶能装多少水取决于它最短的那块木板,想让木桶多装点水,找到最短的那块木板是让木桶多装点水的第一步。拿到WordPress上来说,找到影响WordPress整体性能的程序处理环节是提高WordPress性能的第一步。问题是,程序都是在服务器上运行的,WordPress有那么多函数和类,怎么才能知道是哪个程序影响到了WordPress性能了呢?这就是今天要为大家介绍的XHProf,XHProf是Facebook开发的一个测试php性能的扩展,用来跟踪程序的运行情况。
安装 XHProf扩展
首先下载XHProf(http://pecl.php.net/package/xhprof)并解压,然后切换到解压出来的扩展目录,参照下面命令进行安装。
cd xhprof/extension
/usr/local/php5.6/bin/phpize
./configure --with-php-config=/usr/local/php5.6/bin/php-config --enable-xhprof
make
make install
在WordPress中启用XHProf
编辑php.ini,添加以下配置,其中xhprof.output_dir指定了生成的profile文件存储的位置,我们将其指定为/tmp。
[xhprof]
extension=xhprof.so
xhprof.output_dir=/tmp
使用XHProf完成性能分析并且获到结果之后,结果是以数组形式储存的,如果不借助一些工具,我们很难分析这些数据,xhprof提供了基于Web的界面以方便我们对分析结果进行查看。将XHProf安装包中的xhprofhtml和xhproflib目录放到服务器的Web目录下,让xhprof_html目录中的内容对外可以访问。然后访问 xhprof_html/index.php
就可以以可视化的方式查看分析的结果了,结果中主要有以下几项数据。
- funcitonname:函数名
- calls:调用次数
- Incl.WallTime(microsec):函数运行时间(包括子函数)
- IWall%:函数运行时间(包括子函数)占比
- Excl.WallTime(microsec):函数运行时间(不包括子函数)
- EWall%:函数运行时间(不包括子函数)
如果服务器安装了 graphviz,我们还可以得到一个类似下面的图形分析结果。
分析XHProf数据,找出性能瓶颈
针对WordPress的结果进行分析,我们很容易可以得到以下一些结论。
- 严重影响WordPress性能的往往是几个函数。
- 数据库读取是影响WordPress性能最大的因素,这也是大部分WordPress缓存插件都会缓存数据,减少数据库读取的原因。
- WordPress的Metadata对性能的影响比较大。
- apply_filter对性能的影响也比较大。
由此,我们可以稍微得到一些启发,开发WordPress自定义功能的时候,尽量减少Metadata的使用,如果必须使用,可以考虑把多条数据组合成数组或对象放在一条Metadata记录里面。同时,对于流量较大的网站,使用缓存插件对于提高WordPress的性能是有帮助的。
-
如何创建WordPress古腾堡编辑器的区块(PHP+原生JS) 2024-01-10 01:01:06
-
搭建一个WordPress网站需要多少成本 2023-11-06 00:09:51
-
Symlink介绍(附:如何使用Symlink进行WordPress开发) 2023-11-05 23:38:32
-
让WordPress实现数据库同步的插件:HyperDB 2023-10-24 23:40:49
-
allegro电商平台值得做吗(附:2023年Allegro注册流程指南) 2023-10-08 21:53:39
-
印度跨境电商平台有哪些(附:印度跨境电商做什么产品好) 2023-10-08 21:34:23
-
跨境电商必看的几大海外二手电商平台 2023-10-08 18:04:42
-
WordPress同城互联网产品解决方案:UBASE 2023-10-03 16:40:39
-
WordPress网站的安全插件:wordfence 2023-09-14 09:25:18
-
WordPress 6.3 支持在手动更新插件和主题失败后回滚旧版本 2023-08-28 16:58:45