查看页面生成时间、数据库查询次数、使用内存
为了评估优化效果,首先需要量化评估指标。WordPress提供了一系列函数来帮助我们查看运行状态。
页面生成时间
WordPress提供了timer_stop
函数,它返回从页面开始到函数被调用的时间的字符串,它有两个参数,$display
为0|false
时返回,为1|true
时显示,$precision
为精度。
timer_stop( int|bool $display, int $precision = 3 ): string
数据库查询次数
WordPress提供了get_num_queries
函数,它返回数据库查询次数。
get_num_queries():int
使用内存
PHP提供了memory_get_peak_usage
函数,它返回 PHP 分配的内存峰值(字节)。$real_usage
为true
时获取从系统分配的内存的实际大小,为false
时获取emalloc()
使用的内存
Memory_get_peak_usage ( bool $real_usage=false ): int
使用方法
将以上这些代码插入到页面中
耗时:<?php timer_stop(1,5); ?> | 数据库查询次数:<?php echo get_num_queries(); ?> | 内存消耗(MiB):<?php echo memory_get_peak_usage()/1024/1024; ?>
PHP优化
PHP主要影响页面生成时间。
更新PHP版本
更新PHP版本在大多数时候能够提升速度,例如从PHP7.4升级到PHP8,需要注意检查WordPress与PHP的兼容性。
安装插件OPcache
OPcache能够显著减少PHP的开销,有效提升PHP的速度。
数据库优化
数据库的速度在访问量大时对页面生成时间有较大影响,可以使用缓存来减少数据库查询次数。
使用memcached
需要在服务器上安装memcached并在PHP中安装memcached插件,并上传对应的object-cache.php
到/wp-content/
目录(object-cache.php
实现不同,可以自行找一下),WordPress会自行调用。
WordPress优化
将WP-Cron挂载到系统中
WordPress的各类定时任务是通过WP-Cron实现的,每次加载页面的时候都会进行检查,可以将WP-Cron挂载到系统中以减少开销。首先禁用WP-Cron,在wp-config.php
添加一下内容:
define( 'DISABLE_WP_CRON', true );
并在系统中定时执行以下代码(可以使用Linux的cron实现,crontab -e
以穿创建定时命令)
wget --delete-after http://YOUR_SITE_URL/wp-cron.php
提升静态资源的加载速度
提升静态资源的加载速度的方法就有很多了,例如使用CDN、延长静态资源的缓存时间等,这里就不详细展开了。
终极提速:全站静态化
若以上做法都不能达到满意的速度,可以考虑做静态化,就是将动态页面定时缓存起来,若有访问则返回缓存静态页面,大幅提升相应速度。但是这样做也会带来一些其他的问题,例如浏览量不能及时更新,一些前端功能失效等。这里也不详细展开了,有许多插件都可以实现类似的功能。
查看更多影响页面生成的因素
可以使用Chrome的Lighthose对网站页面进行全面评估,具体使用方法不在此处展开。