Как обрабатывать большие файлы в Go?

Middle
246 просмотров
AFK Offer AI

Никогда не читай весь файл в память — используй streaming. Открываешь os.Open, оборачиваешь в bufio.Reader или bufio.Scanner и обрабатываешь построчно или чанками. Для JSON — json.Decoder вместо json.Unmarshal. Для бинарных файлов — io.Reader с фиксированным буфером. Это позволяет обрабатывать файлы в гигабайты при потреблении нескольких мегабайт RAM. Паралеллить обработку можно через worker pool с каналом.

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

Как отладить высокий CPU usage?