Apabila bekerja dengan peta Go, selalunya berguna untuk mempunyai anggaran memori yang mereka gunakan. Walaupun dokumentasi menyatakan bahawa peruntukan memori awal adalah bergantung kepada pelaksanaan, berikut ialah menyelam lebih mendalam tentang cara anda boleh menentukan perkara ini:
Peta Go dibina berdasarkan dua jenis: hmap (pengepala) dan bmap (tatasusunan baldi). Meneliti kod sumber mendedahkan bahawa apabila tiada ruang awal ditentukan (foo := make(map[string]int)), hanya satu baldi dibuat dalam peta.
Pengepala peta itu sendiri mengandungi beberapa medan:
Dengan mengandaikan seni bina 64-bit, saiz int, uintptr dan tidak selamat. Penunjuk ialah 8 bait setiap satu. Ini memberi kita saiz pengepala:
1 * 8 + 1 * 1 + 1 * 2 + 1 * 4 + 2 * 8 + 1 * 8 = 40 bytes
Setiap baldi dalam peta ialah tatasusunan lapan nilai uint8, yang menambahkan 8 bait tambahan:
8 * 1 = 8 bytes
Menambahkan saiz pengepala dan baldi, kita mendapat jumlah penggunaan memori sebanyak:
40 + 8 = 48 bytes (64-bit architecture)
Anggaran ini boleh digunakan untuk menganggarkan penggunaan memori bagi peta Go yang baru dibuat tanpa ruang awal yang ditentukan.
Atas ialah kandungan terperinci Berapa Banyak Memori yang Digunakan oleh Peta Go yang Baru Dicipta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!