221просмотров
68.8%от подписчиков
19 декабря 2025 г.
Score: 243
💾 mmap: работа с большими файлами без загрузки в RAM mmap (memory mapping) — это способ отобразить файл в виртуальную память, чтобы читать и писать в него как в обычный массив байтов, не загружая всё содержимое в оперативную память. 📌 Как это работает:
• ОС сама подгружает в RAM только те страницы файла, к которым вы обращаетесь.
• Не нужно читать файл целиком — даже гигабайтный лог можно обработать за секунды.
• Изменения можно синхронизировать с диском автоматически. 🧠 Пример: поиск строки в 10-гигабайтном файле import mmap with open("huge.log", "r") as f: with mmap.mmap(f.fileno(), length=0, access=mmap.ACCESS_READ) as mm: if b"ERROR" in mm: print("Найдена ошибка!")
✅ Преимущества: • Потребление памяти не зависит от размера файла • Очень высокая скорость случайного доступа • Поддержка записи (с ACCESS_WRITE или ACCESS_COPY) ⚠️ Ограничения: • Работает с бинарными файлами (для текста — декодируйте фрагменты) • На Windows и Unix есть нюансы с блокировками • Не подходит для потоковых данных (только для файлов на диске)