首页 / JAVA / Java中 BufferedInputStream/BufferedOutputStream 与 FileInputStream/FileOutputStream 性能对比测试
Java中 BufferedInputStream/BufferedOutputStream 与 FileInputStream/FileOutputStream 性能对比测试
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java中 BufferedInputStream/BufferedOutputStream 与 FileInputStream/FileOutputStream 性能对比测试,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1369字,纯文字阅读大概需要2分钟。
内容图文
BufferedInputStream/BufferedOutputStream在文件I/O过程中使用了缓冲区,从而提高了I/O性能。具体提升多少?下面进行测试
测试环境:
CPU:i3-4160 @3.6GHz
内存:4G DDR3 @1333MHz
硬盘:WDC_WD5000AAKX-08U6AA0 ATA
系统:Windows 7 旗舰版
采用文件加密与解密的方法对BufferedInputStream/BufferedOutputStream进行测试,对象文件为exe应用程序,大小4.3MB。
加密与解密的方法见我之前写的博客:Java文件加密与解密
测试方法如下
public static void main(String[] args) { String path = "osu!install.exe"; File file = new File(path); long start = System.currentTimeMillis(); EncryptionAndDeciphering.encryptFile(file); EncryptionAndDeciphering.decipherFile(new File("Encrypted_osu!install.exe")); long end = System.currentTimeMillis(); int time = (int) ((end - start)); System.out.println("Time:" + time); }
先加密osu!install.exe,产生Encrypted_osu!install.exe,再解密Encrypted_osu!install.exe。
测试结果如下,单位毫秒。
其中缓冲区大小为0代表直接使用FileInputStream/FileOutputStream。
可以看到,使用BufferedInputStream/BufferedOutputStream的平均时间为199ms,而使用FileInputStream/FileOutputStream的平均时间为39535ms,是前者的198.7倍,可见缓冲区的使用极大的提高了I/O性能。
那么具体缓冲区设置多大合适?
从上表可以看出,缓冲区特别小的时候,读写时间还是比较长。但当缓冲区超过1024Bytes是,测试结果已经相差不大,都在300ms以内了。但当缓冲区超过默认值8192Bytes时,继续扩大缓冲区会小幅增加读写时间,具体原因有待研究。
内容总结
以上是互联网集市为您收集整理的Java中 BufferedInputStream/BufferedOutputStream 与 FileInputStream/FileOutputStream 性能对比测试全部内容,希望文章能够帮你解决Java中 BufferedInputStream/BufferedOutputStream 与 FileInputStream/FileOutputStream 性能对比测试所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。