Penggunaan Memori Rentetan dalam Golang
Pengoptimuman kod selalunya melibatkan mempertimbangkan penggunaan memori. Mari kita periksa contoh rentetan [rentetan] peta dengan nilai sama ada "A" atau "B." Nampaknya logik untuk menggunakan map[string]bool sebagai gantinya, kerana ia memerlukan lebih sedikit memori.
Walau bagaimanapun, ujian mendedahkan hasil yang mengejutkan. Penggunaan memori rentetan dengan satu aksara ("a") dan rentetan dengan urutan aksara yang sangat panjang ("a2") adalah sama.
Untuk memahami gelagat ini, kita perlu mempertimbangkan cara Go mengendalikan memori untuk rentetan dan peta.
Memahami Memori Go Pengendalian
Mengira Penggunaan Memori Sebenar
Untuk menentukan keperluan memori sebenar peta atau rentetan, kita perlu mempertimbangkan data itu tahan.
stringSize := len(str) + int(unsafe.Sizeof(str))
Pertimbangan Tambahan
Ringkasnya, walaupun tidak selamat.Sizeof() boleh memberikan cerapan tentang penggunaan memori, ia tidak memberikan gambaran yang lengkap. Untuk pengiraan memori yang tepat, pertimbangkan struktur data sebenar dan kandungannya.
Atas ialah kandungan terperinci Mengapakah Penggunaan Memori Go untuk Rentetan Pendek dan Panjang Kelihatan Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!