Heim > Java > javaLernprogramm > Hauptteil

Benchmarkbasierter Vergleich von Java-Funktionen

王林
Freigeben: 2024-04-20 14:39:01
Original
1062 Leute haben es durchsucht

Mit dem Benchmarking-Tool JMH kann die Leistung von Java-Funktionen verglichen werden. Beim Benchmarking zweier Funktionen, die Arrays summieren, wurde festgestellt, dass die Java-Streaming-Funktion (sumArray2) der nativen Schleifenfunktion (sumArray1) überlegen ist, da sie die Vorteile der Parallelisierung nutzt und daher bei großen Arrays eine bessere Leistung erbringt.

Benchmarkbasierter Vergleich von Java-Funktionen

Benchmark-basierter Java-Funktionsvergleich

Leistung ist ein wichtiger Aspekt beim Schreiben von Java-Code. Durch das Benchmarking verschiedener Funktionen können wir ermitteln, welche Funktion in einem bestimmten Szenario die beste Leistung erbringt.

Benchmarking mit JMH

Java Microbenchmark Suite (JMH) ist eine beliebte Bibliothek für Benchmarking in Java. Es bietet eine benutzerfreundliche API zum Erstellen von Benchmarks und zum Messen der Ausführungszeiten.

Java-Funktionsvergleich in Aktion

Vergleichen wir zwei Funktionen, die Elemente in einem Array summieren:

// 方法 1:原生循环
public static int sumArray1(int[] arr) {
    int sum = 0;
    for (int i = 0; i < arr.length; i++) {
        sum += arr[i];
    }
    return sum;
}

// 方法 2:Java 流
public static int sumArray2(int[] arr) {
    return Arrays.stream(arr).sum();
}
Nach dem Login kopieren

Einrichten eines JMH-Benchmarks

Das Einrichten eines Benchmarks mit JMH ist sehr einfach. Hier ist ein Beispiel für den JMH-Konfigurationscode:

@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(TimeUnit.NANOSECONDS)
public class SumArrayBenchmark {

    @Benchmark
    public int sumArray1() {
        int[] arr = new int[10000];
        // 填充数组
        return sumArray1(arr);
    }

    @Benchmark
    public int sumArray2() {
        int[] arr = new int[10000];
        // 填充数组
        return sumArray2(arr);
    }
}
Nach dem Login kopieren

Führen Sie den JMH-Benchmark aus

Um den JMH-Benchmark auszuführen, verwenden Sie den folgenden Befehl:

mvn clean install
java -jar target/benchmarks.jar
Nach dem Login kopieren

Dieser Befehl druckt die Ergebnisse des Benchmarks und zeigt die Ausführungszeit jeder Funktion an .

Ergebnisanalyse

Im obigen Beispiel Java-Stream-Funktion sumArray2 的性能优于原生循环函数 sumArray1. Dies liegt daran, dass Java-Streams die Vorteile der Parallelisierung nutzen und die Leistungsvorteile insbesondere bei großen Arrays noch deutlicher sind.

Fazit

Durch Benchmarking mit JMH können wir die Leistung von Java-Funktionen einfach vergleichen und feststellen, welche Funktion in einem bestimmten Szenario am effizientesten ist.

Das obige ist der detaillierte Inhalt vonBenchmarkbasierter Vergleich von Java-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!