Ich benutze derzeit JMH, um eine Methode zu bewerten, die ich entworfen habe. Zum Testen habe ich die Methode in jedem Testfall für 5 Warm -up -Iterationen durchgeführt, gefolgt von 5 Mess -Iterationen, wie häufig aus Gründen im Zusammenhang mit JIT -Kompilierung und JVM -Initialisierung empfohlen. Während der Benchmark -Ausführung profiliere ich den maximalen Heap -Speicher, der zu jeder Zeit verwendet wird, um den Speicherausdruck meiner Anwendung zu erhalten. Der Speicherprofiler wird unten gedruckt. < /P>
public class MaxHeapUsageInternalProfiler implements InternalProfiler {
private long maxHeapUsage = 0;
private final MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
private final AtomicBoolean monitoring = new AtomicBoolean(false);
private Thread monitoringThread;
private Instant lastPrintTime = Instant.now(); // Initialize lastPrintTime with current time
@Override
public void beforeIteration(BenchmarkParams benchmarkParams, IterationParams iterationParams) {
maxHeapUsage = 0; // Reset to zero to ensure accurate maximum tracking
monitoring.set(true);
// Start a separate thread to monitor memory usage continuously
monitoringThread = new Thread(() -> {
while (monitoring.get()) {
try {
updateMaxHeapUsage();
Thread.sleep(1); // Poll memory every 10 milliseconds
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
});
monitoringThread.start();
}
@Override
public Collection
Aufwärmen Iterationen gegen neue Gabeln im JMH -Kompromiss ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post
-
-
Warum verwendet Baumkarte in meinem JMH -Test so viel Speicher? [geschlossen]
by Anonymous » » in Java - 0 Replies
- 9 Views
-
Last post by Anonymous
-