Wie führe ich einen JMH -Benchmark in Maven mit Exec: Java anstelle von Exec: Exec aus?Java

Java-Forum
Anonymous
 Wie führe ich einen JMH -Benchmark in Maven mit Exec: Java anstelle von Exec: Exec aus?

Post by Anonymous »

Dieser Beitrag auf javapapers.com zeigt, wie Sie einen JMH -Benchmark in Maven ausführen, indem MVN Exec: Exec eingeben. Das Ausführen von JMH in Maven ist ziemlich praktisch, da Sie sie problemlos aus einer IDE -Laufkonfiguration oder in einer Maven -Phase ausführen können. />
Normalerweise startet JMH ein weiteres VM, um die Benchmarks zu betreiben. Sie werden also mindestens 3 VMs gleichzeitig ausgeführt. Klasse direkt in den VM Maven läuft. Als ich jedoch versuchte, Maven so zu konfigurieren, dass JMH mit Exec: Java ausführt, stürzt der Benchmark wegen fehlender Klassen ab:

Code: Select all

# JMH 1.11.3 (released 40 days ago)
# VM version: Error: Could not find or load main class org.openjdk.jmh.runner.VersionMain
# VM invoker: C:\Program Files\Java\jdk1.7.0\jre\bin\java.exe
[...]
# Run progress: 0.00% complete, ETA 00:02:40
# Fork: 1 of 1
Error: Could not find or load main class org.openjdk.jmh.runner.ForkedMain

Hier ist der relevante Teil der pom.xml :

Code: Select all

org.codehaus.mojo
exec-maven-plugin
1.4.0

my.Benchmark


Und hier ist, wie ich JMH von My.Benchmark :
ausführe

Code: Select all

public static void main(String[] args) throws RunnerException {
Options options = new OptionsBuilder().include(my.Benchmark.class.getSimpleName())
.forks(1).build();
new Runner(options).run();
}
Ich erkenne, dass JMH die Java.class.Path -Systemeigenschaft verwendet, um den Klassenpfad für die gabelhaften VMs zu bestimmen und dass diese Eigenschaft keine Maven -Projektabhängigkeiten enthält. Aber was ist der bevorzugte Weg, um damit umzugehen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post