/** * Returns a textual summary of the top numQueries queries ordered by total time. */ @Override public synchronized String getTopQueriesByTotalTime(int numQueries) { List<Pair<Long, SqlCallStats>> entries = new ArrayList<Pair<Long, SqlCallStats>>(); for (SqlCallStats stats : statsByName.values()) { entries.add(new Pair<Long, SqlCallStats>(stats.getTotalTime(), stats)); } entries.sort(Pair.compareLhSide()); Collections.reverse(entries); StringBuilder sb = new StringBuilder(); for (int i = 0; i < Math.min(entries.size(), numQueries); ++i) { long totalTimeMs = entries.get(i).lhSide; SqlCallStats stats = entries.get(i).rhSide; String line = String.format( "total_time_ms=%-15d total_calls=%-10d query=%s%n", //$NON-NLS-1$ totalTimeMs, stats.getTotalCalls(), stats.getQueryName()); sb.append(line); } return sb.toString(); }
@Test public void testMinMax() { BatchingVisitable<Long> visitor = ListVisitor.create(Lists.newArrayList(0L, 1L, 2L, 3L)); assertEquals("BatchingVisitables.getMin was wrong", 0L, (long) BatchingVisitables.getMin(visitor)); assertEquals("BatchingVisitables.getMax was wrong", 3L, (long) BatchingVisitables.getMax(visitor)); BatchingVisitable<Pair<Long, Long>> pairedVisitable = ListVisitor.create(Lists.newArrayList( Pair.create(0L, 0L), Pair.create(1L, 0L), Pair.create(0L, 1L), Pair.create(1L, 1L))); Ordering<Pair<Long, Long>> ordering = Pair.compareLhSide(); assertEquals("BatchingVisitables.getMin was wrong", Pair.create(0L, 0L), BatchingVisitables.getMin(pairedVisitable, ordering, null)); assertEquals("BatchingVisitables.getMax was wrong", Pair.create(1L, 0L), BatchingVisitables.getMax(pairedVisitable, ordering, null)); }
/** * Returns a textual summary of the top numQueries queries ordered by total time. */ @Override public synchronized String getTopQueriesByTotalTime(int numQueries) { List<Pair<Long, SqlCallStats>> entries = new ArrayList<Pair<Long, SqlCallStats>>(); for (SqlCallStats stats : statsByName.values()) { entries.add(new Pair<Long, SqlCallStats>(stats.getTotalTime(), stats)); } entries.sort(Pair.compareLhSide()); Collections.reverse(entries); StringBuilder sb = new StringBuilder(); for (int i = 0; i < Math.min(entries.size(), numQueries); ++i) { long totalTimeMs = entries.get(i).lhSide; SqlCallStats stats = entries.get(i).rhSide; String line = String.format( "total_time_ms=%-15d total_calls=%-10d query=%s%n", //$NON-NLS-1$ totalTimeMs, stats.getTotalCalls(), stats.getQueryName()); sb.append(line); } return sb.toString(); }