Rumah > Java > javaTutorial > teks badan

## Adakah Memanggil `array.length` dalam for Loop merupakan Bottleneck Prestasi?

Mary-Kate Olsen
Lepaskan: 2024-10-26 00:38:02
asal
779 orang telah melayarinya

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

Kos Tatasusunan Panggilan.panjang

Apabila menggantikan gelung dengan untuk setiap gelung, pembangun sering menghadapi corak berikut:

<code class="java">for (int i = 0, n = a.length; i < n; i++) {
    ...
}</code>
Salin selepas log masuk

Daripada yang lebih mudah:

<code class="java">for (int i = 0; i < a.length; i++) {
    ...
}</code>
Salin selepas log masuk

Ini menimbulkan persoalan: adakah tugasan tambahan n = a.length merupakan prestasi yang dicapai untuk tatasusunan?

Jawapannya

Tidak , panggilan ke array.length ialah O(1) atau operasi masa tetap.

Sifat .length tatasusunan ialah ahli akhir awam dan mengaksesnya tidak lebih perlahan daripada pembolehubah tempatan. Ini tidak seperti panggilan kaedah seperti size(), yang biasanya melibatkan lebih banyak overhed.

Pengkompil JIT moden juga boleh mengoptimumkan panggilan ke .length untuk menghapuskannya sepenuhnya. Untuk mengesahkan ini, seseorang boleh memeriksa kod sumber pengkompil JIT atau memeriksa kod asli yang dibuang.

Walau bagaimanapun, pengkompil JIT mungkin tidak sentiasa dapat melaksanakan pengoptimuman ini, seperti apabila penyahpepijatan didayakan atau apabila badan gelung mengandungi pembolehubah setempat yang berlebihan.

Atas ialah kandungan terperinci ## Adakah Memanggil `array.length` dalam for Loop merupakan Bottleneck Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!