Maison > développement back-end > Golang > Quelle quantité de mémoire une Go Map réserve-t-elle initialement ?

Quelle quantité de mémoire une Go Map réserve-t-elle initialement ?

Patricia Arquette
Libérer: 2024-12-18 19:13:14
original
555 Les gens l'ont consulté

How Much Memory Does a Go Map Initially Reserve?

Quelle quantité de mémoire les cartes Go Maps réservent-elles ?

Dans Go, les cartes sont allouées dynamiquement, la capacité initiale restant non spécifiée. Cela signifie que l'allocation de mémoire est spécifique à l'implémentation. Pour déterminer l'allocation de mémoire initiale, consultez la structure interne de la carte.

Structure de la carte

Une carte se compose d'un en-tête (type hmap) et d'un tableau de buckets (type bmap). Lorsqu'il est créé sans capacité initiale, un seul bucket est alloué.

Structure et taille de l'en-tête

L'en-tête comprend :

  • 1 * int
  • 2 * uint8
  • 1 * uint16
  • 1 * uint32
  • 2 * unsafe.Pointer
  • 1 * uintptr

La taille de int, uintptr et unsafe.Pointer est égal à la taille du mot (8 octets sur les machines 64 bits). Par conséquent, la taille de l'en-tête est de 40 octets.

Structure et taille du bucket

Chaque bucket contient un tableau de 8 * uint8. En ajoutant cela à la taille de l'en-tête, nous obtenons l'allocation de mémoire initiale totale :

Header Size (40 bytes) + Bucket Size (8 bytes) = **48 bytes (64-bit architecture)**
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal