javaIO——BufferedReader效率测试实践
上一篇刚刚学习了 BufferedReader ,想着来验证一下 BufferedReader 的缓冲到底能带来多大的性能提升,于是拷贝了一个100M 左右的日志文件放到本地,测试一下使用 BufferedReader 和不使用的情况下,所耗费的时间差别。
上一篇 BufferedReader 学习篇地址:https://www.cnblogs.com/coding-one/p/11369726.html
1. 准备文件:

2. 编写测试代码:
package com.one.jdksrc.java.io; import java.io.*; /**
* @author haoya_Coding_one
* @version 1.0
* @create 2019/8/17 18:23
* @description TODO
*/
public class BufferedReaderTest { public static void main(String[] args) throws IOException {
char[] buff = new char[10000]; /*long start = System.currentTimeMillis();
try(BufferedReader bufferedReader = new BufferedReader(new FileReader("C:/Users/haoya_Coding_one/Desktop/catalina.out"))){
while (bufferedReader.read(buff, 0, 10000) >0){
System.out.println(buff);
}
}
System.out.println("使用缓冲,耗时:" + (System.currentTimeMillis()-start) + " ms");*/ long start = System.currentTimeMillis();
try(FileReader fileReader = new FileReader("C:/Users/haoya_Coding_one/Desktop/catalina.out")){
while (fileReader.read(buff, 0, 10000) >0){
System.out.println(buff);
}
}
System.out.println("不使用缓冲,耗时:" + (System.currentTimeMillis()-start) + " ms");
}
}
3. 测试结果
分别测试在每次读取 100/1000/10000个字符的情况下,所花费的时间。
每次读取 100 个字符:


每次读取 1000 个字符:


每次读取 10000 个字符:


结果是:并不能明显的看出 使用 BufferedReader 有什么效率提升。
不知道是不是文件太小呢?或者是本地文件流本身有什么特殊性,换成网络流会不会不一样?下次找个时间试试。
javaIO——BufferedReader效率测试实践的更多相关文章
- javaIO——BufferedReader
今天来学习一下 java.io.BufferedReader ,从命名可以看出,跟前面学习的 StringReader 和 CharArrayReader 有些不一样,这些都是按照数据源类型命名,Bu ...
- log2取整效率测试
RMQ问题中有个ST算法,当然还有个标准算法.LCA问题可以转化为带限制的RMQ(RMQ+-1)问题来解决.我们姑且认为这些问题的时间复杂度是查询$O(1)$的.但是,注意到对于RMQ(/+-1)问题 ...
- Docker与自动化测试及其测试实践
Docker 与自动化测试 对于重复枯燥的手动测试任务,可以考虑将其进行自动化改造.自动化的成本在于自动化程序的编写和维护,而收益在于节省了手动执行用例的时间.简而言之,如果收益大于成本,测试任务就有 ...
- Golang项目的测试实践
Golang项目的测试实践 最近有一个项目,链路涉及了4个服务.最核心的是一个配时服务.要如何对这个项目进行测试,保证输出质量,是最近思考和实践的重点.这篇就说下最近这个实践的过程总结. 测试金字塔 ...
- 携程酒店DevOps测试实践
作者简介 王幸福,携程酒店研发部高级测试经理,负责无线自动化测试相关工作.在测试框架和平台研发.移动测试.DevOps等领域有着丰富的经验. 如今很多大型互联网公司.创新型企业都在积极地进行DevOp ...
- NHibernate Demo 和 效率测试
本文关于NHibernate的Demo和效率测试,希望对大家有用. 1.先去官网下载Nhibernate 2.放入到项目中并建立Helper类 private static ISession _Ses ...
- 关于 pgsql 数据库json几个函数用法的效率测试
关于 pgsql 数据库json几个函数用法的效率测试 关于pgsql 几个操作符的效率测试比较1. json::->> 和 ->> 测试方法:单次运行100次,运行10个单次 ...
- 《高级软件测试》web测试实践--12月30日记录
考完数学,我们正式开始web测试实践的作业,今天,我们主要进行了方案的选择和人员的分工.任务计划和安排如上图所示. 任务进展:完成题目选择和人员分工: 遇到问题:暂无: 下一步任务:完成软件评测.用户 ...
- Python_线程、线程效率测试、数据隔离测试、主线程和子线程
0.进程中的概念 三状态:就绪.运行.阻塞 就绪(Ready):当进程已分配到除CPU以外的所有必要资源,只要获得处理机便可立即执行,这时的进程状态成为就绪状态. 执行/运行(Running)状态:当 ...
随机推荐
- 使用VLC发送TS流与播放TS流
使用VLC发送TS流与播放TS流 一.如何使用VLC发送TS流 1.添加一个文件至VLC 2.选择串流,继续 3.选择UDP,点击添加 4.输入地址及端口 5.选择h.264+mp3(TS) 6.ne ...
- BigDecimal的toString和toPlainString区别
创建一个BigDecimal的数,分别调用toPlainString和toString方法 import java.math.BigDecimal; public class Test05 { pub ...
- .net framework 4.0 安装失败解决办法
方法一 1.打开cmd命令窗口 运行net stop WuAuServ 停止更新服务 2.开始----运行------输入%windir% 3.找到SoftwareDistribution的 ...
- mudos源码分析
错误捕捉相关的代码在simulate.c void throw_error() { )->framekind & FRAME_MASK) == FRAME_CATCH) { LONGJM ...
- [C++/JavaScript]数据结构:栈和数列>案例引入(数制的转换)
1 案例1:数制的转换 1.1 背景与原理 1.2 编程复现 (JavaScript版 复现) function convert(value, d){ stack = []; // 栈 result ...
- Swift中添加标记(MARK)和警告(TODO FIXME)
//MARK: - 注释说明 //FIXME: - 表示此处有bug 或者要优化 //TODO: - 一般用于写到哪了 做个标记,让后回来继续 开启警告: 参考博客: http://blog.csd ...
- mysql一条语句实现插入或更新的操作
,),(,) ON DUPLICATE KEY UPDATE c=VALUES(c); 或者 INSERT INTO table (id,a,b,c) select id,a,b,c from xxx ...
- css3 Grid栅格系统
Grid 栅格系统的使用 定义容器 .coninater { display: grid; } 多种方式定义单格 1. 按百分比划分 .coninater { display: grid; grid- ...
- ASP.NET 拼多多用户登录授权后使用code去换取access_token
一.拼多多开放平台 由于本人刚毕业进公司实习 遇到一些问题然后想通过博客来记录和分享给大家一起学习. 第一次写博客没什么经验不是写的很好 请大家多多关照 嘴下留情哈哈 谢谢! 好了 话不多说直接进入主 ...
- 【文章存档】Local Git 如何部署分支
又来存档文章了,链接 https://docs.azure.cn/zh-cn/articles/azure-operations-guide/app-service-web/aog-app-servi ...