作为在写 WordPress 性能优化教程前的预热,我们需要先了解到 WordPress 前端页面的一个性能情况,而最直接的就是查看页面生成的需要多少时间,当前页面数据库查询次数或页面使用内存消耗情况,这样我们才能知道在以后的优化后会有多大的提升。

WordPress 提供了一个,timer_stop()函数,官方给出的介绍为:检索或显示从页面开始到调用函数的时间。简单的说就是我们访问一个 WordPress 链接,服务器生成处理这个页面所需要的时间,当然这并不是指我们打开或者加载这个页面的时间。更多的是服务器端的处理速度和 WordPress 本身运行情况。
//函数
timer_stop( $display, $precision = 3 )
//$display:是否直接输出,int | bool 必选,是否回显或返回结果。0 或 false 表示返回;1 或 true 表示输出显示。默认值为 0 | false。
//$precision:精度,int 可选,指要显示的小数点右边的位数。默认为 3.
//示例
<?php timer_stop(1);//直接输出显示 ?>
//详细实例
<?php timer_stop(1,7);?>
//显示生成时间,精度到7位小数点
我们可以直接在主题文件的footer.php添加该代码,即可在页脚显示生成时间

页面生成时间:<?php timer_stop(1,7)?>s

像我这样添加,还能加上文字
那么get_num_queries()则是可以统计打开当前页面进行了多少次数据库查询
<?php echo get_num_queries(); ?>
显示该页面消耗的内存
<?php echo memory_get_peak_usage();?>
//这样显示的是Bytes,我们要换成MB,好看一点
<?php echo memory_get_peak_usage()/1024/1024;?>
//这样就行了
//示例:
当前页面内存消耗:<?php echo memory_get_peak_usage()/1024/1024;?>MB
将其放在需要的地方即可启用
效果如图:你也可以下拉页面看看

代码结合起来:直接复制到主题的footer.php即可
数据库查询次数:<?php echo get_num_queries(); ?>次 | 页面生成时间:<?php timer_stop(1,7)?>s | 当前页面内存消耗:<?php echo memory_get_peak_usage()/1024/1024;?>MB
扩展:
在html 源代码下显示面生成消耗时间,当前页面数据库查询次数和当前页面消耗内存情况
如果只是给自己看的,最好是在html 源代码下显示,很简单。就是将它变为html 注释,上面的代码修改为:
<!-- 数据库查询次数:<?php echo get_num_queries(); ?>次 | 页面生成时间:<?php timer_stop(1,7)?>s | 当前页面内存消耗:<?php echo memory_get_peak_usage()/1024/1024;?>MB -->
在html 源代码下统计信息只有管理员登录了后可以看到
用if 判断是否登陆,上面的代码改为:
<?php if (current_user_can('level_10')) {
echo '<!-- 数据库查询次数:' . get_num_queries() . ' 次 | 页面生成时间:' . timer_stop(1,7) . 's | 当前页面内存消耗:' . memory_get_peak_usage()/1024/1024 . ' s -->';
} ?>
functions 函数调用
通过 functions 函数调用,在当前主题的 functions.php 文件添加:
function performance( $visible = false ) {
$stat = sprintf( '本页生成数据库 %d 次查询,耗时 %.3f 秒,使用 %.2fMB 内存',
get_num_queries(),
timer_stop( 0, 3 ),
memory_get_peak_usage() / 1024 / 1024
);
echo $visible ? $stat : "<!-- {$stat} -->" ;
}
然后可以在需要显示的地方,使用下面的代码进行调用:
<?php if(function_exists('performance')) performance(false) ;?>
performance
参数false
表示在页面前端不显示,只在HTML源码
中可见。如果你想在页面中直接显示,可改为true
即可。
原创文章,作者:Rosmontics,如若转载,请注明出处:https://rosmontis.com/archives/152