概述
1 缓存和缓冲
1.1缓冲 Buffer
缓冲的作用就是协调上下层应用之间的性能差异
通过缓冲区的缓冲,当上次组件性能优于下层组件的时候,缓冲可以有效减少上层组件对下层组件等待的时间。
基于这样的结构,上层组件不需要等待下层组件完全接收全部数据,即可返回进行其它操作,加快了上层组件的处理速度,从而提升整个系统的性能。
不用缓冲流
public class Test {
public static void main(String[] args) {
Writer writer = null;
try {
//写数据
writer = new FileWriter("F:\file.txt");
long num = 10_0000;
//当前系统时间
long beginTime = System.currentTimeMillis();
for (int i = 0; i < num; i++) {
writer.write(i);
}
//结束系统时间
long endTime = System.currentTimeMillis();
//用时时间
System.out.println(endTime - beginTime);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
耗时55毫秒
使用缓冲流
public class BufferTest {
public static void main(String[] args) {
Writer writer = null;
BufferedWriter bufferedWriter = null;
try {
writer = new FileWriter("F:\file.txt");
bufferedWriter = new BufferedWriter(writer);
long num = 10_0000;
long beginTime = System.currentTimeMillis();
for (int i = 0; i < num; i++) {
bufferedWriter.write(i);
}
long endTime = System.currentTimeMillis();
System.out.println(endTime - beginTime);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
bufferedWriter.close();
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
耗时19毫秒
补充:
BufferedWriter
有两个构造函数
BufferedWriter(Writer writer)
BufferedWriter (Writer writer, int size)
BufferedWriter(Writer writer)默认创建8kb缓冲区
BufferedWriter (Writer writer, int size) 可以自己指定缓冲区大小,但缓冲区的大小需要适中,太小起不到缓冲的作用,太大会浪费系统资源,增加GC的负担。
1.2 缓存 Cache
缓存也是为了提升系统的性能而开辟的一块空间,于缓冲不同的是,缓存是将反复被使用的数据存储起来,供程序直接调用,避免程序反复从数据库中读取相同的数据。
最后
以上就是粗暴镜子为你收集整理的缓存和缓冲的区别的全部内容,希望文章能够帮你解决缓存和缓冲的区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复