我是靠谱客的博主 粗暴镜子,最近开发中收集的这篇文章主要介绍缓存和缓冲的区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

缓存也是为了提升系统的性能而开辟的一块空间,于缓冲不同的是,缓存是将反复被使用的数据存储起来,供程序直接调用,避免程序反复从数据库中读取相同的数据。

在这里插入图片描述

最后

以上就是粗暴镜子为你收集整理的缓存和缓冲的区别的全部内容,希望文章能够帮你解决缓存和缓冲的区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部