private void testOverallTiming(boolean trackCpuTime) { InternalTiming timing = new InternalTiming(trackCpuTime); for (int i = 1; i <= 5; i++) { OperationTimer timer = new OperationTimer(trackCpuTime, false); doSomething(); timing.record(timer::end); } }
private void testOperationTiming(boolean trackCpuTime) { InternalTiming overallTiming = new InternalTiming(true); InternalTiming operationTiming1 = new InternalTiming(trackCpuTime); InternalTiming operationTiming2 = new InternalTiming(trackCpuTime); InternalTiming operationTiming3 = new InternalTiming(trackCpuTime); OperationTimer timer = new OperationTimer(true, trackCpuTime); doSomething(); operationTiming1.record(timer::recordOperationComplete); doSomething(); operationTiming1.record(timer::recordOperationComplete); doSomething(); operationTiming2.record(timer::recordOperationComplete); doSomething(); operationTiming1.record(timer::recordOperationComplete); doSomething(); operationTiming2.record(timer::recordOperationComplete); doSomething(); operationTiming3.record(timer::recordOperationComplete); overallTiming.record(timer::end); assertThat(operationTiming1.getTiming().getWallNanos() + operationTiming2.getTiming().getWallNanos() + operationTiming3.getTiming().getWallNanos()) .isLessThanOrEqualTo(overallTiming.getTiming().getWallNanos()); assertThat(operationTiming1.getTiming().getCpuNanos() + operationTiming2.getTiming().getCpuNanos() + operationTiming3.getTiming().getCpuNanos()) .isLessThanOrEqualTo(overallTiming.getTiming().getCpuNanos()); }