«

php中输出缓冲测试

nciaer 发布于 阅读:16 开发技术


在看phpcms的源码,发现有这样一行:ob_start('ob_gzhandler');,虽然我知道这个是输出缓存,压缩页面,提高加载速度等等啥的作用,但是具体压缩到多少呢?

于是我做了一个实验,创建了一个php文件,代码如下:

for($i = 1; $i <= 200000; $i++) {
    echo '硬汉工作室<br />';
}

chrome访问,打开开发者工具,切换到Network标签,显示文件大小是22.6kb,这应该是没有经过任何压缩的。

现在我加上输出缓存

ob_start('ob_gzhandler');
for($i = 1; $i <= 200000; $i++) {
    echo '硬汉工作室<br />';
}

现在访问,显示文件大小是10.4kb,粗略算,压缩率50%+,如果网页内容比较多的话,效果应该还比较明显。

那么, ob_gzhandler是啥呢?,这个应该是一个压缩算法函数,gz格式的压缩?


ob 是output buffer的简写,buffer是啥?缓冲,而不是缓存,ob_start()是打开缓冲区,所以默认情况下,打开缓冲区不会有浏览任何速度的提升,必须配合相应的压缩函数。

几个常用的ob函数:
ob_get_contents() 获取缓冲区内容,但是不清空缓冲区;
ob_get_clean() 获取缓冲区内容,同时清空缓冲区;

php 缓冲