Heim  >  Artikel  >  Java  >  Wie wirkt sich die Array-Größe auf die Konvertierungsleistung von ArrayList in Array in Java aus?

Wie wirkt sich die Array-Größe auf die Konvertierungsleistung von ArrayList in Array in Java aus?

Susan Sarandon
Susan SarandonOriginal
2024-11-26 08:10:11440Durchsuche

How Does Array Sizing Impact ArrayList to Array Conversion Performance in Java?

Größe des Arrays in toArray festlegen

Beim Konvertieren einer ArrayList in ein Array mit der toArray-Methode gibt es zwei Möglichkeiten, die Größe des Arrays anzugeben: mit Lassen Sie uns ihre Auswirkungen auf die Leistung untersuchen.

Angenommen, wir haben eine ArrayList namens myList können wir die folgende Syntax verwenden, um ein Array zu erstellen:

MyClass[] arr = myList.toArray(new MyClass[myList.size()]); // Presized array
MyClass[] arr = myList.toArray(new MyClass[0]); // Empty array

Intuitiv mag die Größenänderung des Arrays effizienter erscheinen, aber Benchmark-Ergebnisse mit Java Microbenchmark Harness (JMH) zeigen ein überraschendes Ergebnis. Das Erstellen eines Arrays mit einem leeren Größenparameter (neue MyClass[0]) übertrifft durchweg die vordefinierte Version (neue MyClass[myList.size()]).

Der JVM- und JIT-Compiler verfügt über Optimierungen, die effizient erstellen und erstellen können Arrays mit der richtigen Größe initialisieren. Durch die Bereitstellung eines leeren Arrays kann der Compiler diese Optimierungen nutzen, was zu einer besseren Leistung führt. Dieser Vorteil macht sich besonders bemerkbar, wenn die Array-Größe zunimmt.

Hier sind die Benchmark-Ergebnisse:

Size Presized Array (μs) Empty Array (μs)
1 0.025 0.019
100 0.155 0.133
1000 1.512 1.075
5000 6.884 5.318
10000 13.147 10.652
100000 159.977 139.692

Wie Sie sehen können, bietet die leere Array-Methode einen leichten, aber konsistenten Leistungsvorteil. Es ist jedoch wichtig zu beachten, dass diese Ergebnisse je nach den spezifischen JVM- und JIT-Compiler-Optimierungen sowie der Größe und den Eigenschaften Ihrer Daten variieren können.

Das obige ist der detaillierte Inhalt vonWie wirkt sich die Array-Größe auf die Konvertierungsleistung von ArrayList in Array in Java aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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