Golang Books
17K subscribers
323 photos
6 videos
335 files
303 links
Библиотека Golang разработчика

По всем вопросам- @haarrp

@Golang_google - Golang

@golangl - golang chat

@GolangJobsit - golang channel jobs

@golangtests golang tests

@itchannels_telegram - 🔥лучшие ит-каналы

№ 5032829002
Download Telegram
🚀 Как ускорить доступ к файлам на Go в 25 раз?

В блоге от Varnish Software рассказывается, как использование memory-map (mmap) вместо классического чтения файлов (seek/read) дало огромный прирост скорости: random lookup ≈ 3.3 нс против ≈ 416 нс с ReaderAt.

✔️ Основная идея: вместо системных вызовов чтения данных из файла, маппим файл в память и читаем как обычный массив указателей.

⚠️ Однако есть важный нюанс: запись через mmap может быть очень неэффективной из-за page-fault’ов и управления виртуальной памятью.

📌 Полезно, если:
- много операций чтения, особенно случайного доступа;
- работа с большими файлами и важна производительность;
- запись файлов - не основная задача.

Если нужно быстро взглянуть на статью: https://info.varnish-software.com/blog/how-memory-maps-mmap-deliver-25x-faster-file-access-in-go

Benchmarks: https://github.com/perbu/mmaps-in-go
CDB64 files with memory maps: https://github.com/perbu/cdb

#GoLang #Performance #MemoryMap #mmap #SystemsProgramming #BackendEngineering

@golang_books
👍53🤔2🔥1