页次: 1
这个东西是一个输出缓冲区,首先说缓冲区是什么?
存在缓冲区的目的是为了,提高系统的性能。通常系统运行的瓶颈是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
离线
页次: 1