Heim > Java > javaLernprogramm > Hauptteil

## Ist der Aufruf von „array.length' in einer for-Schleife ein Leistungsengpass?

Mary-Kate Olsen
Freigeben: 2024-10-26 00:38:02
Original
780 Leute haben es durchsucht

## Is Calling `array.length` in a for Loop a Performance Bottleneck?

Die Kosten für den Aufruf von array.length

Beim Ersetzen von for-Schleifen durch for-each-Schleifen stoßen Entwickler häufig auf das folgende Muster:

<code class="java">for (int i = 0, n = a.length; i < n; i++) {
    ...
}</code>
Nach dem Login kopieren

Anstelle des einfacheren:

<code class="java">for (int i = 0; i < a.length; i++) {
    ...
}</code>
Nach dem Login kopieren

Dies wirft die Frage auf: Ist die zusätzliche n = a.length-Zuweisung ein Leistungseinbruch für Arrays?

Die Antwort

Nein , ein Aufruf von array.length ist eine O(1)- oder konstante Zeitoperation.

Die .length-Eigenschaft eines Arrays ist ein öffentliches letztes Mitglied und der Zugriff darauf ist nicht langsamer als auf eine lokale Variable. Dies ist anders als bei Methodenaufrufen wie size(), die normalerweise mehr Overhead mit sich bringen.

Moderne JIT-Compiler können den Aufruf von .length auch optimieren, um ihn vollständig zu eliminieren. Um dies zu überprüfen, kann man den Quellcode des JIT-Compilers oder den ausgegebenen nativen Code untersuchen.

Der JIT-Compiler ist jedoch möglicherweise nicht immer in der Lage, diese Optimierung durchzuführen, beispielsweise wenn das Debuggen aktiviert ist oder wann Der Schleifenkörper enthält übermäßig viele lokale Variablen.

Das obige ist der detaillierte Inhalt von## Ist der Aufruf von „array.length' in einer for-Schleife ein Leistungsengpass?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
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!