Array vs Slice: Kelajuan Mengakses
Adalah sering diandaikan bahawa tatasusunan lebih pantas daripada kepingan dalam mengakses elemen. Walau bagaimanapun, ujian penanda aras mendedahkan hasil yang mengejutkan: kepingan tempatan mengatasi tatasusunan tempatan.
Ujian ini menanda aras empat fungsi: mengakses kepingan dan tatasusunan global dan tempatan. Menganalisis keputusan, kepingan global sememangnya lebih perlahan daripada tatasusunan global, sejajar dengan jangkaan. Walau bagaimanapun, kepingan tempatan secara ketara mengatasi tatasusunan tempatan.
Sebab
Memeriksa himpunan amd64 untuk kedua-dua tatasusunan tempatan dan fungsi penanda aras hirisan, perbezaan ketara muncul. Versi tatasusunan berulang kali memuatkan alamat tatasusunan ke dalam memori semasa operasi capaian tatasusunan, manakala versi hirisan melakukan pengiraan secara eksklusif pada daftar selepas dimuatkan daripada memori sekali.
Kesimpulan
Ini menunjukkan bahawa langkah tambahan yang terlibat dalam mengakses elemen hirisan (dengan menyimpulkan tatasusunan yang mendasari) bukanlah halangan yang ketara untuk pembolehubah tempatan. Dalam senario ini, slice menawarkan akses yang lebih pantas kerana penggunaan daftar yang lebih cekap. Perlu diingat bahawa hasil ini mungkin tidak berlaku untuk tatasusunan atau kepingan besar atau apabila diluluskan sebagai argumen fungsi.
Atas ialah kandungan terperinci Arrays vs. Slices: Manakah yang Menawarkan Akses Elemen Lebih Pantas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!