Maison > Java > javaDidacticiel > le corps du texte

## L'appel de « array.length » dans une boucle for est-il un goulot d'étranglement en termes de performances ?

Mary-Kate Olsen
Libérer: 2024-10-26 00:38:02
original
779 Les gens l'ont consulté

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

Le coût de l'appel de array.length

Lors du remplacement des boucles for par des boucles for-each, les développeurs rencontrent souvent le modèle suivant :

<code class="java">for (int i = 0, n = a.length; i < n; i++) {
    ...
}</code>
Copier après la connexion

Au lieu du plus simple :

<code class="java">for (int i = 0; i < a.length; i++) {
    ...
}</code>
Copier après la connexion

Cela soulève la question : l'affectation supplémentaire n = a.length est-elle un impact sur les performances des tableaux ?

La réponse

Non , un appel à array.length est une opération O(1) ou à temps constant.

La propriété .length d'un tableau est un membre final public et son accès n'est pas plus lent qu'une variable locale. Ceci est différent des appels de méthode comme size(), qui impliquent généralement plus de surcharge.

Les compilateurs JIT modernes peuvent également optimiser l'appel à .length pour l'éliminer complètement. Pour vérifier cela, on peut inspecter le code source du compilateur JIT ou examiner le code natif vidé.

Cependant, le compilateur JIT n'est pas toujours en mesure d'effectuer cette optimisation, par exemple lorsque le débogage est activé ou lorsque le corps de la boucle contient des variables locales excessives.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!