public void resetRecorder() { int count = recorderCount.get(); for (int i = 0; i < count; ++i) { Recorder recorder = recorderArr.get(i); if (recorder != null) { recorder.resetRecord(); } } }
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); }
for (int i = 0; i < actualSize; ++i) { Recorder recorder = tmpCurRecorders.getRecorder(i); if (recorder == null || !recorder.hasRecord()) { continue; MethodTag methodTag = methodTagMaintainer.getMethodTag(recorder.getMethodTagId()); MethodMetrics metrics = MethodMetricsCalculator.calPerfStats(recorder, methodTag, tmpCurRecorders.getStartTime(), tmpCurRecorders.getStopTime()); methodMetricsProcessor.process(metrics, tmpCurRecorders.getStartTime(), tmpCurRecorders.getStartTime(), tmpCurRecorders.getStopTime());
public static void profiling(long startNanos, int methodTagId) { try { if (!running) { Logger.warn("ProfilingAspect.doProfiling(): methodTagId=" + methodTagId + ", methodTag=" + MethodTagMaintainer.getInstance().getMethodTag(methodTagId) + ", startNanos: " + startNanos + ", IGNORED!!!"); return; } Recorder recorder = recorderMaintainer.getRecorder(methodTagId); if (recorder == null) { Logger.warn("ProfilingAspect.doProfiling(): methodTagId=" + methodTagId + ", methodTag=" + MethodTagMaintainer.getInstance().getMethodTag(methodTagId) + ", startNanos: " + startNanos + ", recorder is null IGNORED!!!"); return; } long stopNanos = System.nanoTime(); recorder.recordTime(startNanos, stopNanos); } catch (Exception e) { Logger.error("ProfilingAspect.doProfiling(" + startNanos + ", " + methodTagId + ", " + MethodTagMaintainer.getInstance().getMethodTag(methodTagId) + ")", e); } }