网站开发技术

记点笔记、 学点技术 欢迎交流建站技术。本站关注lamp技术

您尚未登录。

#1 2014-10-30 10:18:28

admin
管理员

php.ini output_buffering的作用是干什么的

这个东西是一个输出缓冲区,首先说缓冲区是什么?

存在缓冲区的目的是为了,提高系统的性能。通常系统运行的瓶颈是I/O操作,也就是输出和输入。

输入设备常见的有键盘, 输入有显示器,打印机,硬盘也是一种,因为要写入数据。

比如要在硬盘中写入数据,如果是在键盘上输入一个字母、就在硬盘中写入一个,这样效率是很低的。

高效率的做法是 先在内存中写入,  等到足够多的时候,一块写入到硬盘, 硬盘是块设备, 一次可以写入多个字节。

这个写入内存就相当于写入了,缓冲区。


同样web的程序也有大量的应用缓冲区,也是为了提高系能。

php中常见的输出操作,比如 echo,  var_dump 等输出的操作并不是直接输出到用户的浏览器的, php有个缓冲区, 等到达到一定的量的时候,一起发个web服务器(apache) , 之后传个浏览器。 

达到一个量, 这个值的设定就是通过 php.ini 中的 output_buffering 来设定的。

测试代码

<?php
for($i = 0; $i < 4; $i++) {
    sleep(1);
    echo date("Y-m-d H:i:s") . "</br>";
    echo str_repeat("#", 10000);
    echo "</br>";
    ob_flush();

}

这样应该看到的结果是每一秒钟在浏览器上看到一行时间,和一行######...

sleep(1)  延时一秒中

ob_fulsh() 让在php中的缓冲释放出来。


ipbbs.net

离线

页脚

Powered by FluxBB