IO是如何利用缓冲区来搞高性能的,原理是什么?
我知道有种说法,很笼统。比如读缓冲时,如果没有缓冲区,CPU就总是在一次次的读,如果有了,可以一次性读取,这样节省时间。
这样的回答我不明白。这个CPU的节省又不是给我的这个程序节省的,大不了操作系统可以多用一些CPU干别的了。对于我的程序来说,我一次次的读,和等着数据进入缓冲区再一次性的读,在时间上根本没有分别呀。
以上是我的理解,大家都是怎么认识缓冲区的。
我知道有种说法,很笼统。比如读缓冲时,如果没有缓冲区,CPU就总是在一次次的读,如果有了,可以一次性读取,这样节省时间。
这样的回答我不明白。这个CPU的节省又不是给我的这个程序节省的,大不了操作系统可以多用一些CPU干别的了。对于我的程序来说,我一次次的读,和等着数据进入缓冲区再一次性的读,在时间上根本没有分别呀。
以上是我的理解,大家都是怎么认识缓冲区的。
解决方案 »
- JTextArea如何读取每行字符串?
- 请老大们指点Filedialog的学习,谢谢了
- 关于WIN2000下jni问题
- Frame问题,麻烦各位了!
- 如何用Java来实现关闭输入法?采用模拟按键Ctrl+Space来实现可以吗?
- 请问哪里有eclipse 下载?
- uploadify上传bug
- Java内存的问题
- 请问谁知道J2SE 1.3.1_02的下载地址啊??
- 那里有JBuilder的入门教材呀?谢谢!
- 请问既然所有的类都是Object的子类, 为什么我的类无法使用Object的clone方法呢? protected的方法子类不是可以使用的吗?谢谢!
- 看看我这个代码的问题好不?想在一个字符串中提取数字的........
确实只是节省了cpu,可是现在的应用多数是多线程的。节约cpu当然可以让你的多线程快一些。
即使你的程序是单线程的,可是系统的读写硬盘,刷新屏幕,维持系统运行都需要cpu,如果你占了太多,就会造成系统缓慢。除非你的程序能做到系统级,即是使用在裸机(无系统,无驱动)上的。
置于读,也许它一口气读了很多,然后再在buffer里面选你要的给你。