IO是如何利用缓冲区来搞高性能的,原理是什么?
我知道有种说法,很笼统。比如读缓冲时,如果没有缓冲区,CPU就总是在一次次的读,如果有了,可以一次性读取,这样节省时间。
这样的回答我不明白。这个CPU的节省又不是给我的这个程序节省的,大不了操作系统可以多用一些CPU干别的了。对于我的程序来说,我一次次的读,和等着数据进入缓冲区再一次性的读,在时间上根本没有分别呀。
以上是我的理解,大家都是怎么认识缓冲区的。

解决方案 »

  1.   


    确实只是节省了cpu,可是现在的应用多数是多线程的。节约cpu当然可以让你的多线程快一些。
    即使你的程序是单线程的,可是系统的读写硬盘,刷新屏幕,维持系统运行都需要cpu,如果你占了太多,就会造成系统缓慢。除非你的程序能做到系统级,即是使用在裸机(无系统,无驱动)上的。
      

  2.   

    写,我知道,他会积累一部分之后一起写入硬盘,与buffer有关,如果非正常手段中断,很有可能造成数据丢失,有时候要用flush()刷一下。
    置于读,也许它一口气读了很多,然后再在buffer里面选你要的给你。