// Prime the collection of count lists for all collectors. for (int i = 0; i < collectors.size(); i++) {
GarbageCollectorMXBean collector = collectors.get(i);
counts.put(collector.getName(), new ArrayList<>(iterations));
}
// Perform some gc, record collector counts. for (int i = 0; i < iterations; i++) {
System.gc();
addCollectionCount(counts, i);
}
// Check the increments: // Old gen collectors should increase by one, // New collectors may or may not increase. // Any increase >=2 is unexpected. for (String collector : counts.keySet()) {
System.out.println("Checking: " + collector);
for (int i = 0; i < iterations - 1; i++) {
List<Long> theseCounts = counts.get(collector); long a = theseCounts.get(i); long b = theseCounts.get(i + 1); if (b - a >= 2) {
failed = true;
errorMessage += "Collector '" + collector + "' has increment " + (b - a) + " at iteration " + i + "\n";
}
}
} if (failed) {
System.err.println(errorMessage); thrownew RuntimeException("FAILED: System.gc collections miscounted.");
}
System.out.println("Passed.");
}
privatestaticvoid addCollectionCount(HashMap<String, List<Long>> counts, int iteration) { for (int i = 0; i < collectors.size(); i++) {
GarbageCollectorMXBean collector = collectors.get(i);
List<Long> thisList = counts.get(collector.getName());
thisList.add(collector.getCollectionCount());
}
}
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-10-11)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.