首頁 > 後端開發 > Golang > 為什麼 `map[string]string` 和 `map[string]bool` 在 Go 中顯示相似的記憶體使用情況?

為什麼 `map[string]string` 和 `map[string]bool` 在 Go 中顯示相似的記憶體使用情況?

Mary-Kate Olsen
發布: 2024-12-18 02:17:11
原創
441 人瀏覽過

Why Does `map[string]string` and `map[string]bool` Show Similar Memory Usage in Go?

Golang 中的字串記憶體使用情況

使用值為「A」或「B」的map[string]string 最佳化程式碼時”,假設可能是map[string]bool由於其較小的值類型而更有效。為了研究這一點,unsafe.Sizeof() 是用來測量記憶體使用情況。僅報告資料的「淺」大小。字串記憶體表示

Go 中的字串由標頭表示由指向資料的指標和長度組成。類型定義了以下結構:

因此,unsafe.Sizeof(somemap) 將只報告此標頭的大小,該大小與字串值無關。 🎜>地圖的實際記憶體需求

要取得地圖的實際記憶體使用情況,很重要考慮他們所引用的資料。提供了更準確的估計。儲存中的字串UTF-8記憶體中的位元組序列。字串會為切片分配一個新的支援數組也很重要。

以上是為什麼 `map[string]string` 和 `map[string]bool` 在 Go 中顯示相似的記憶體使用情況?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板