GO_INTERVIEW_LIB Telegram 730
Как устроена map в Go

В Go map – это оптимизированная хеш-таблица с открытой адресацией, использующая buckets.

Вместо linked list при коллизиях, как в Java HashMap, Go хранит по 8 элементов в одной корзине, а при нехватке места создаёт overflow bucket.

type hmap struct {
count int // Количество элементов
B uint8 // log₂(количества корзин)
hash0 uint32 // Случайная "соль" для хеширования
buckets unsafe.Pointer // Указатель на массив корзин
oldbuckets unsafe.Pointer // Для ленивого rehash
nevacuate uintptr // Состояние эвакуации (grow)
}


buckets – массив корзин (bmap), каждая хранит до 8 элементов.
oldbuckets – используется при ленивом rehash при увеличении map.
hash0 – случайная "соль" для предотвращения атак на хеш-таблицу.
😁15👍6



tgoop.com/go_interview_lib/730
Create:
Last Update:

Как устроена map в Go

В Go map – это оптимизированная хеш-таблица с открытой адресацией, использующая buckets.

Вместо linked list при коллизиях, как в Java HashMap, Go хранит по 8 элементов в одной корзине, а при нехватке места создаёт overflow bucket.

type hmap struct {
count int // Количество элементов
B uint8 // log₂(количества корзин)
hash0 uint32 // Случайная "соль" для хеширования
buckets unsafe.Pointer // Указатель на массив корзин
oldbuckets unsafe.Pointer // Для ленивого rehash
nevacuate uintptr // Состояние эвакуации (grow)
}


buckets – массив корзин (bmap), каждая хранит до 8 элементов.
oldbuckets – используется при ленивом rehash при увеличении map.
hash0 – случайная "соль" для предотвращения атак на хеш-таблицу.

BY Библиотека Go для собеса | вопросы с собеседований


Share with your friend now:
tgoop.com/go_interview_lib/730

View MORE
Open in Telegram


Telegram News

Date: |

Invite up to 200 users from your contacts to join your channel Step-by-step tutorial on desktop: Telegram desktop app: In the upper left corner, click the Menu icon (the one with three lines). Select “New Channel” from the drop-down menu. The court said the defendant had also incited people to commit public nuisance, with messages calling on them to take part in rallies and demonstrations including at Hong Kong International Airport, to block roads and to paralyse the public transportation system. Various forms of protest promoted on the messaging platform included general strikes, lunchtime protests and silent sit-ins. The group’s featured image is of a Pepe frog yelling, often referred to as the “REEEEEEE” meme. Pepe the Frog was created back in 2005 by Matt Furie and has since become an internet symbol for meme culture and “degen” culture.
from us


Telegram Библиотека Go для собеса | вопросы с собеседований
FROM American