@Nullable public Timer getPhaseTimer(ServerQueryPhase queryPhase) { return _phaseTimers[queryPhase.ordinal()]; }
@Override protected ServerQueryPhase[] getQueryPhases() { return ServerQueryPhase.values(); }
ServerQueryPhase() { queryPhaseName = Utils.toCamelCase(name().toLowerCase()); }
/** * Creates a new timer for query phase with the given start time in millis. * <p>Calling this again for same phase will overwrite existing timing information. * * @param queryPhase Query phase to be timed * @param startTimeMs Timer start time in millis * @return Timer for the query phase */ public Timer startNewPhaseTimer(ServerQueryPhase queryPhase, long startTimeMs) { Timer phaseTimer = new Timer(queryPhase, startTimeMs); _phaseTimers[queryPhase.ordinal()] = phaseTimer; return phaseTimer; }
public long getPhaseDurationMs(ServerQueryPhase queryPhase) { Timer phaseTimer = _phaseTimers[queryPhase.ordinal()]; return phaseTimer != null ? phaseTimer.getDurationMs() : -1; } }