Java之nio性能比较
结果:
used time:53574684
used time:1800077620
used time:12563690
可见MappedByteBuffer读写数据是最快的, 其次是FileChannel, 再其次就是RandomAccessFile.
public class BufferedCache {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
test3();
test2();
test1();
}
public static void test1() throws IOException {
long start = System.nanoTime();
FileChannel fc = new RandomAccessFile("/tmp/test.tmp", "rw").getChannel();
MappedByteBuffer mbb = fc.map(MapMode.READ_WRITE, 0, 8);
for (int i = 0; i < 100000; i++) {
mbb.putLong(0, i);
}
long end = System.nanoTime();
System.out.println("used time:" + (end - start));
fc.close();
}
public static void test2() throws IOException {
long start = System.nanoTime();
RandomAccessFile raf = new RandomAccessFile("/tmp/test.tmp", "rw");
for (int i = 0; i < 100000; i++) {
raf.seek(0);
raf.writeLong(i);
}
long end = System.nanoTime();
System.out.println("used time:" + (end - start));
raf.close();
}
public static void test3() throws IOException {
long start = System.nanoTime();
FileChannel fc = new RandomAccessFile("/tmp/test.tmp", "rw").getChannel();
ByteBuffer buf = ByteBuffer.allocate(8);
for (int i = 0; i < 100000; i++) {
buf.putLong(0, i);
fc.write(buf, 0);
}
long end = System.nanoTime();
System.out.println("used time:" + (end - start));
fc.close();
}
}
Java之nio性能比较的更多相关文章
- 输入和输出--java的NIO
Java的NIO 实际开发中NIO使用到的并不多,我并不是说NIO使用情景不多,是说我自己接触的并不是很多,前面我在博客园和CSDN上转载了2篇别人写的文章,这里来大致总结下Java的NIO,大概了解 ...
- Java异步NIO框架Netty实现高性能高并发
原文地址:http://blog.csdn.net/opengl_es/article/details/40979371?utm_source=tuicool&utm_medium=refer ...
- Java之NIO
想要学习Java的Socket通信,首先要学习Java的IO和NIO基础,这方面可以阅读<Java NIO 系列教程>. 下面展示自己代码熟悉Java的NIO编程的笔记. 1.缓冲区(Bu ...
- Java 的NIO 3个主要概念 Channel、Buffer、Selector
Java 的NIO 3个主要概念 Channel.Buffer.Selector,为何提高了性能
- 漫谈NIO(2)之Java的NIO
1.前言 上章提到过Java的NIO采取的是多路IO复用模式,其衍生出来的模型就是Reactor模型.多路IO复用有两种方式,一种是select/poll,另一种是epoll.在windows系统上使 ...
- java学习-NIO(五)NIO学习总结以及NIO新特性介绍
我们知道是NIO是在2002年引入到J2SE 1.4里的,很多Java开发者比如我还是不知道怎么充分利用NIO,更少的人知道在Java SE 7里引入了更新的输入/输出 API(NIO.2).但是对于 ...
- Java BIO NIO 与 AIO
回顾 上一章我们介绍了操作系统层面的 IO 模型. 阻塞 IO 模型. 非阻塞 IO 模型. IO 复用模型. 信号驱动 IO 模型(用的不多,知道个概念就行). 异步 IO 模型. 并且介绍了 IO ...
- Java服务端性能优化
<Java程序性能优化>说性能优化包含五个层次:设计调优.代码调优.JVM调优.数据库调优.操作系统调优. 常用的几个代码优化方案: 使用单例 对于IO处理.数据库连接.配置文件解析加载等 ...
- Java中NIO的简单介绍
NIO基本介绍 Java NIO(New IO) 也有人称之为Java non-blocking IO 是从Java1.4版本开始引入的一个新的IO API,可以代替标准的IO API.NIO与原来的 ...
随机推荐
- web.xml(8)_jsp-config
13.jsp-config jsp-config元素主要用来设定JSP的相关配置,<jsp:config>包含<taglib>和<jsp-property-group&g ...
- POI操作Excel常用方法总结 分类: B1_JAVA 2013-08-23 10:01 349人阅读 评论(0) 收藏
转载自:http://blog.csdn.net/xjun15/article/details/5805429 一. POI简介 Apache POI是Apache ...
- 【C++竞赛 H】The sum problem
Time Limit: 1s Memory Limit: 32MB 问题描述 Given a sequence 1,2,3,-,N, your job is to calculate the numb ...
- [Angular] Create custom validators for formControl and formGroup
Creating custom validators is easy, just create a class inject AbstractControl. Here is the form we ...
- ios开发抽屉效果的封装使用
#import "DragerViewController.h" #define screenW [UIScreen mainScreen].bounds.size.width @ ...
- Snmp linux
http://blog.csdn.net/youngqj/article/details/7311849 http://blog.csdn.net/howema/article/details/418 ...
- java获取访问路径、域名、项目名、请求入参
废话不多说(这句不是废话吗>>),直接提出可以运行的类,你放到一个web项目访问下就知道了. //测试页面-跳转到输入数据的form表单 public String test1(){ Ac ...
- .netcore consul实现服务注册与发现-集群完整版
原文:.netcore consul实现服务注册与发现-集群完整版 一.Consul的集群介绍 Consul Agent有两种运行模式:Server和Client.这里的Server和Clien ...
- linux下jar包的生存与开机自动启动
前言 作为一名Android开发,有的时候也是要做做其他工作的,前段时间写了一个很简单的java消息转发程序,因为和三方厂商合作,对方只提供了java的sdk,然而我们这边都是清一色的C#后台开发人员 ...
- oracle常规任务
# su - oracle oracle> sqlplus "/as sysdba" SQL> exec dbms_scheduler.disable('MONDA ...