Как работает mmap в Go?

Senior
199 просмотров
AFK Offer AI

В Go mmap вызывается через syscall.Mmap(fd, offset, length, prot, flags). Возвращает []byte, отображённый на файл. Читаешь слайс — ОС автоматически подгружает данные с диска. Записываешь — изменения попадают в файл (с MAP_SHARED). Важно: Go GC не знает про mmap-память, поэтому она не учитывается в GOGC. Нужно явно вызвать syscall.Munmap для освобождения. Осторожно с boundary: если файл 100 байт, а ты читаешь за пределами — SIGBUS. Используется для БД-движков, поисковых индексов, work with large files.

Следующий вопрос

Что такое HTTP/3 QUIC?