[JAVA] Mikrobanking beim Ändern von VM-Argumenten

Ich denke, es gibt Fälle, in denen Sie einen Mikro-Benchmark durchführen möchten, während Sie das VM-Argument ändern. Für Argumente, die sich auf den JIT-Compiler auswirken, führen Sie einfach das Programm aus und messen Sie die Zeit Ich kann den Effekt nicht gut messen. Dies liegt daran, dass der JIT-Compiler den Code zu dem Zeitpunkt ausführt und optimiert, den die VM während der Programmausführung festlegt. Daher kann nicht gemessen werden, wie effektiv die Änderung des VM-Arguments war.

Verwendung von JMH

In solchen Fällen ist es zweckmäßig, das Benchmarking-Tool JMH zu verwenden. Die Verwendung von JMH wird in diesem Artikel erläutert. Von nun an ist dies der Benchmark in JMH Ich werde erklären, wie das VM-Argument zu diesem Zeitpunkt angegeben wird.

So geben Sie VM-Argumente an

Sie können das VM-Argument angeben, indem Sie die Fork-Annotation zu der zu vergleichenden Methode hinzufügen, wie unten gezeigt, und das JvmArgsAppend-Attribut verwenden. In diesem Beispiel wird "-XX: -Inline" angegeben.

	@Benchmark
	@Fork(jvmArgsAppend = "-XX:-Inline") //Geben Sie VM-Argumente mit Anmerkungen an
public String Keine Inline-Erweiterung() {
		return execute();
	}

Durch die Implementierung wie folgt ist es auch möglich, das Vorhandensein oder Fehlen von VM-Argumenten gleichzeitig zu bewerten.

	@Benchmark
public String Mit Inline-Erweiterung() {
		return execute();
	}

	@Benchmark
	@Fork(jvmArgsAppend = "-XX:-Inline") //Geben Sie VM-Argumente mit Anmerkungen an
public String Keine Inline-Erweiterung() {
		return execute();
	}

Recommended Posts

Mikrobanking beim Ändern von VM-Argumenten
Zusammenfassung zum Schreiben von Anmerkungsargumenten
Zusammenfassung der Implementierung von Standardargumenten in Java
8 Entspricht mehreren Argumenten
So entwickeln Sie OpenSPIFe
Verwendung von Map
Wie schreibe ich Rails
Wie benutzt man rbenv?
Verwendung mit_option
Verwendung von fields_for
Verwendung von java.util.logging
Verwendung der Karte
Verwendung von collection_select
Wie benutzt man Twitter4J
So installieren Sie Docker
Verwendung von MapStruct
Verwendung von TreeSet
So deinstallieren Sie Rails
So installieren Sie Docker-Maschine
Wie man ein schattiertes Glas macht
Wie schreibe ich Docker-Compose
Wie man Identität benutzt
Wie man Hash benutzt
Wie schreibe ich Mockito
So erstellen Sie Docker-Compose
So installieren Sie MySQL
So schreiben Sie eine Migrationsdatei
Wie man android-midi-lib baut
Verwendung von Dozer.mapper
Wie benutzt man Gradle?
Verwendung von org.immutables
Verwendung von java.util.stream.Collector
Verwendung von VisualVM
Verwendung von Map
Wie man einen Schrägstrich zurückschlägt \
So verketten Sie Zeichenfolgen
Umgang mit dem Fehler FEHLER: Während der Ausführung von gem ... (Gem :: FilePermissionError)