Как эффективно читать большие файлы?

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

Главное правило — не грузи весь файл в память через ioutil.ReadAll. Используй bufio.Scanner для построчного чтения или io.Reader для потоковой обработки. Если формат позволяет — JSON decoder, CSV reader тоже работают потоково. Для очень больших файлов можно использовать mmap через syscall, но это усложняет код. Буферизованный ридер с хорошим размером буфера (32-64 КБ) покрывает большинство случаев. Если нужен параллелизм — раздели файл на чанки и обрабатывай в горутинах.

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

Что такое data race?