them is always composed of multiple memory pages. The memory page size used by the official standard Go runtime (v1.18) is 8192 bytes.
То есть одна переменная весом 32768 байт - это один memory page, а 32768+1 байт - это уже два пэйджа по 32768 и 8192 байт (8191 bytes wasted)?
Типа первая memory page может вместить 32768 байт, а следующие по 8192 байт каждая
Это 5 memory pages (32768 / pageSize 8192) = 4 , если оверфлоу будет на +1 байт (3276(9)) = это уже 5 страниц , и эту страницу оно выровнит под page size, то есть добавит 8191 байт ещё (типа мусорные, нужны только для выравнивания) . * to create a byte slice with 32769 elements on heap, the size of the memory block carrying the elements of the slice is 40960 (32768 + 8192, 5 memory pages). In other words, 8191 bytes are wasted.
Ну это стандартная модель памяти со страницами
Обсуждают сегодня