public static void main(final String[] args) { for (int i = 0; i < 10; i++) { perfTestEncode(i); perfTestDecode(i); } }
private static void perfTestDecode(final int runNumber) { final int reps = 10 * 1000 * 1000; final MyState state = new MyState(); final CarBenchmark benchmark = new CarBenchmark(); final long start = System.nanoTime(); for (int i = 0; i < reps; i++) { benchmark.testDecode(state); } final long totalDuration = System.nanoTime() - start; System.out.printf( "%d - %d(ns) average duration for %s.testDecode() - message encodedLength %d%n", runNumber, totalDuration / reps, benchmark.getClass().getName(), state.carDecoder.encodedLength() + state.messageHeaderDecoder.encodedLength()); } }
private static void perfTestEncode(final int runNumber) { final int reps = 10 * 1000 * 1000; final MyState state = new MyState(); final CarBenchmark benchmark = new CarBenchmark(); final long start = System.nanoTime(); for (int i = 0; i < reps; i++) { benchmark.testEncode(state); } final long totalDuration = System.nanoTime() - start; System.out.printf( "%d - %d(ns) average duration for %s.testEncode() - message encodedLength %d%n", runNumber, totalDuration / reps, benchmark.getClass().getName(), state.carEncoder.encodedLength() + state.messageHeaderEncoder.encodedLength()); }
@Benchmark @BenchmarkMode(Mode.AverageTime) public int testEncode(final MyState state) { final MessageHeaderEncoder messageHeaderEncoder = state.messageHeaderEncoder; final CarEncoder carEncoder = state.carEncoder; final UnsafeBuffer buffer = state.encodeBuffer; final int bufferIndex = state.bufferIndex; encode(messageHeaderEncoder, carEncoder, buffer, bufferIndex); return carEncoder.encodedLength(); }
@Benchmark @BenchmarkMode(Mode.AverageTime) public int testDecode(final MyState state) { final MessageHeaderDecoder messageHeaderDecoder = state.messageHeaderDecoder; final CarDecoder carDecoder = state.carDecoder; final UnsafeBuffer buffer = state.decodeBuffer; final int bufferIndex = state.bufferIndex; final byte[] tempBuffer = state.tempBuffer; decode(messageHeaderDecoder, carDecoder, buffer, bufferIndex, tempBuffer); return carDecoder.encodedLength(); }