Чтобы прочитать файл размером 20 ГБ при наличии только 10 ГБ оперативной памяти, нужно использовать подход по частичной загрузке данных — читать файл по кускам (чанкам). Это позволяет обрабатывать файл последовательно, не загружая его целиком в память.
Как прочитать файл размером 20 ГБ, если оперативной памяти только 10 ГБ?
Чтобы прочитать файл размером 20 ГБ при наличии только 10 ГБ оперативной памяти, нужно использовать подход по частичной загрузке данных — читать файл по кускам (чанкам).
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Чтобы прочитать файл размером 20 ГБ при наличии только 10 ГБ оперативной памяти, нужно использовать подход по частичной загрузке данных — читать файл по кускам (чанкам). Это позволяет обрабатывать файл последовательно, не загружая его целиком в память.
Например, в JavaScript для фронтенда можно использовать FileReader с методом slice для чтения файла по частям:
const CHUNK_SIZE = 1024 * 1024 * 10; // 10 МБ
let offset = 0;
function readChunk(file) {
const slice = file.slice(offset, offset + CHUNK_SIZE);
const reader = new FileReader();
reader.onload = function(e) {
const chunkData = e.target.result;
// Обработка данных чанка
offset += CHUNK_SIZE;
if (offset < file.size) {
readChunk(file);
}
};
reader.readAsArrayBuffer(slice);
}
// вызов: readChunk(файл);
Такой подход позволяет последовательно обрабатывать большие файлы, не превышая лимит памяти.