首頁 >後端開發 >Golang >未初始化的 Go Map 分配多少記憶體?

未初始化的 Go Map 分配多少記憶體?

Linda Hamilton
Linda Hamilton原創
2024-12-23 04:36:14688瀏覽

How Much Memory Does an Uninitialized Go Map Allocate?

確定未初始化的 Go Map 的記憶體分配

在 JavaScript 中,建立 Map 時,不會明確指定初始容量。分配的記憶體取決於實作。本文探討如何在 Go 中確定此類映射的記憶體分配。

初始記憶體分配

當建立映射時未指定初始容量,Go 會分配一個小的記憶體分配。內存量。這包括一個 header 和一個 Bucket 陣列。

理解Map 結構

根據Go 的Map 類型原始碼,一個Map 包括:

  • 一個頭(hmap 類型),字段佔用40 個位元組
  • 陣列個桶(bmap類型),每個桶佔 8 個位元組

計算

對於 64位元架構,初始記憶體分配為如下:

Header Fields: 40 bytes
Bucket Array (1 bucket): 8 bytes
---------------------------
Total: 48 bytes

注意:

確切的記憶體分配可能會因作業系統和架構等因素而有所不同。

以上是未初始化的 Go Map 分配多少記憶體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn