public static MethodMetrics calPerfStats(Recorder recorder, MethodTag methodTag, long startTime, long stopTime) { int[] sortedRecords = null; try { int effectiveCount = recorder.getEffectiveCount(); sortedRecords = ChunkPool.getInstance().getChunk(effectiveCount * 2); recorder.fillSortedRecords(sortedRecords); return calPerfStats(methodTag, startTime, stopTime, sortedRecords, effectiveCount); } catch (Exception e) { Logger.error("MethodMetricsCalculator.calPerfStats(" + recorder + ", " + methodTag + ", " + startTime + ", " + stopTime + ")", e); } finally { ChunkPool.getInstance().returnChunk(sortedRecords); } return MethodMetrics.getInstance(methodTag, startTime, stopTime); }