Peta Go mempunyai kecekapan perolehan yang mengagumkan, menawarkan carian kunci masa yang berterusan tanpa mengira saiz jadual cincang. Ini menimbulkan persoalan: bagaimanakah ia mencapai prestasi yang luar biasa ini?
Secara dalaman, peta Go berfungsi sebagai jadual cincang. Teknik pencincangan memberikan setiap kunci nilai unik (cincang) yang menentukan lokasinya dalam jadual. Dengan menggunakan bit tertib rendah cincang, baldi tertentu dipilih untuk menyimpan pasangan nilai kunci. Walau bagaimanapun, untuk mengurangkan perlanggaran, baldi boleh merantai berbilang baldi sekunder.
Kod sumber mendedahkan bahawa setiap baldi mengandungi sehingga lapan pasangan nilai kunci. Bit tertib rendah cincang menentukan baldi yang sesuai, manakala beberapa bit tertib tinggi dalam setiap baldi membezakan antara entri.
Sebagai contoh, jika peta mempunyai 2,000 kekunci, ia mungkin mempunyai kira-kira 250 baldi. Secara purata, mencari kunci khusus memerlukan menyemak hanya 8 entri dalam baldi yang dipilih, bukan keseluruhan 1,000 (seperti yang dicadangkan oleh log2 n). Pendekatan ini memastikan perolehan masa yang berterusan, tanpa mengira saiz peta.
Go juga menggunakan teknik baru untuk mengelakkan ketidaksahihan iterator semasa pensaiz semula peta dalaman, menyerlahkan kecanggihan pelaksanaan petanya.
Atas ialah kandungan terperinci Bagaimana Go Mencapai Carian Kunci Masa Malar dalam Petanya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!