读写速度比较
然后在写段代码,测试下读写的速度:
int time = 1000; Date begin = new Date(); ByteBuffer buffer = ByteBuffer.allocate(2*time); for(int i=0;i<time;i++){ buffer.putChar('a'); } buffer.flip(); for(int i=0;i<time;i++){ buffer.getChar(); } Date end = new Date(); System.out.println(end.getTime()-begin.getTime()); begin = new Date(); ByteBuffer buffer2 = ByteBuffer.allocateDirect(2*time); for(int i=0;i<time;i++){ buffer2.putChar('a'); } buffer2.flip(); for(int i=0;i<time;i++){ buffer2.getChar(); } end = new Date(); System.out.println(end.getTime()-begin.getTime()); |
测试的结果如下:
可以看到直接内存在直接的IO操作上,还是有明显的差异的!