📄 bufferallocbenchmark.java
字号:
package com.ronsoft.books.nio.buffers;import java.nio.*;import java.nio.channels.*;import java.io.IOException;public class BufferAllocBenchmark{ public static long doAlloc (int size, int count, boolean direct) { long start = System.currentTimeMillis(); for (int i = 0; i < count; i++) { ByteBuffer buf; if (direct) { buf = ByteBuffer.allocateDirect (size * 1024); } else { buf = ByteBuffer.allocate (size * 1024); } } return (System.currentTimeMillis() - start); } public static long [] doLoop (int count, boolean direct) { long [] times = new long [count]; for (int i = 0; i < times.length; i++) { times [i] = doAlloc (i * 8, 100, direct);// System.gc(); } return (times); } public static void printResults (long [] nonDirect, long [] direct) { System.out.println ("Size\talloc\tallocDirect"); for (int i = 0; i < nonDirect.length; i++) { System.out.println ("" + ((i + 1) * 8) + "\t" + nonDirect [i] + "\t" + direct [i]); } } public static void main (String [] argv) throws IOException { long [] nonDirect; long [] direct; System.out.println ("Pre-running"); doLoop (2, false); doLoop (2, true); System.gc(); System.out.println ("allocating non-direct buffers"); nonDirect = doLoop (25, false); System.gc(); System.out.println ("allocating direct buffers"); direct = doLoop (25, true); System.gc(); System.out.println ("done"); printResults (nonDirect, direct); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -