博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
缓存重要
阅读量:6162 次
发布时间:2019-06-21

本文共 1049 字,大约阅读时间需要 3 分钟。

hot3.png

各种编程秘籍编程宝典都提到缓存是一个提高系统性能的利器,使用缓存可以使系统的处理速度吞吐量成倍的提高。今天做了实验来证实一下这个结论。

实验主要是测试在不同的缓存设置情况下拷贝一个文件所需要的时间长短。

实验的设置如下:

1.被拷贝的文件大小为1.4Mb

2.缓存的大小依次设置为1byte、6byte、11byte……

最后实验得出的结果非常震撼,见下图:

 

当缓存大小设置为1byte时复制一个1.4Mb的文件需要13000ms,当缓存大小为400byte时复制同样大小的文件只需要30ms。这有大约400倍的差别。

 

产生这种巨大差别的原因其实也很好理解,当缓存设置为1byte时,每存一byte数据就要进行一次磁盘操作,而缓存设置为400byte时,每存400byte才进行一次磁盘操作,而磁盘操作是整个程序里面最耗时的部分。

 

代码如下:

void test() throws IOException {		for (int i = 1; i <= 500; i = i + 5) {			long time = System.currentTimeMillis();			File ff = new File("d:/abc.jpg");			File fi = new File("d:/" + new Random().nextInt() + ".jpg");			fi.createNewFile();			BufferedInputStream ffreader = new BufferedInputStream(new FileInputStream(ff), i);			BufferedOutputStream fiwriter = new BufferedOutputStream(new FileOutputStream(fi), i);			int temp;			while ((temp = ffreader.read()) >= 0) {				fiwriter.write(temp);			}			;			ffreader.close();			fiwriter.close();			time = System.currentTimeMillis() - time;			System.out.println(i + "    " + time);		}	}

转载于:https://my.oschina.net/chenzuoping/blog/41405

你可能感兴趣的文章
JS图片跟着鼠标跑效果
查看>>
Leetcode 3. Longest Substring Without Repeating Characters
查看>>
416. Partition Equal Subset Sum
查看>>
app内部H5测试点总结
查看>>
[TC13761]Mutalisk
查看>>
while()
查看>>
常用限制input的方法
查看>>
IIS7下使用urlrewriter.dll配置
查看>>
并行程序设计学习心得1——并行计算机存储
查看>>
C++ 迭代器运算
查看>>
【支持iOS11】UITableView左滑删除自定义 - 实现多选项并使用自定义图片
查看>>
【算法笔记】多线程斐波那契数列
查看>>
java8函数式编程实例
查看>>
jqgrid滚动条宽度/列显示不全问题
查看>>
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>