WordPress 网页输出显示页面生成消耗时间,当前页面数据库查询次数或当前页面消耗内存情况

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

WordPress timer_stop

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添加该代码,即可在页脚显示生成时间

WordPress 网页输出显示页面生成消耗时间,当前页面数据库查询次数或当前页面消耗内存情况
页面生成时间:<?php timer_stop(1,7)?>s
WordPress 网页输出显示页面生成消耗时间,当前页面数据库查询次数或当前页面消耗内存情况

像我这样添加,还能加上文字

那么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

将其放在需要的地方即可启用

效果如图:你也可以下拉页面看看

WordPress 网页输出显示页面生成消耗时间,当前页面数据库查询次数或当前页面消耗内存情况

代码结合起来:直接复制到主题的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

(0)
RosmonticsRosmontics网站管理员
上一篇 2022年3月16日 下午6:06
下一篇 2022年3月16日 下午9:40

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论审核已启用。您的评论可能需要一段时间后才能被显示。