Как изменить подход, чтобы извлекать email из файла размером 10 ГБ при лимите памяти контейнера 256 МБ?

Нужно перейти от загрузки всего файла к потоковой обработке с ограниченными буферами и сразу записывать найденные адреса. Дедупликация в памяти также может превысить лимит.

Короткий ответ

Что ответить на собеседовании

Нужно перейти от загрузки всего файла к потоковой обработке с ограниченными буферами и сразу записывать найденные адреса. Дедупликация в памяти также может превысить лимит.

Подробный разбор

Ответ с пояснениями

Нужно перейти от загрузки всего файла к потоковой обработке с ограниченными буферами и сразу записывать найденные адреса. Дедупликация в памяти также может превысить лимит.

Если размер строк ограничен, файл читают построчно; для произвольно длинных строк нужны чанки и сохранение незавершённого токена на границе. Максимальный размер переносимого фрагмента задают по согласованным правилам допустимого email, иначе одна огромная последовательность снова исчерпает память. Регулярное выражение компилируют один раз, результаты пишут потоком. Для полной дедупликации используют дисковую БД с уникальным индексом либо внешнюю сортировку. В бюджет 256 МБ включают интерпретатор, буферы, декодирование и служебные структуры, а не только исходные байты.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее