Найти - Пользователи
Полная версия: Можно ли использовать файл в качестве оперативной памяти.
Начало » Python для экспертов » Можно ли использовать файл в качестве оперативной памяти.
1
lavrton
При обработке большого количества данных иногда переполняется память. Соответственно система практически виснет. Остановить скрипт сложно.
Как можно решить эту проблему, если уменьшить потребляемое кол-во оперативной памяти программы нельзя?
bw
1. Поставить ещё одну палку оперативки.
2. Увеличить swap в системе.
3. Возможно поможет штатный mmap, хотя сомневаюсь.
4. А лучше всё же пересмотреть алгоритм и не хранить всё в мозгах.

..bw
python-er
lavrton
Можно ли использовать файл в качестве оперативной памяти
Можно. Именно так сортируют наборы данных, которые не умещаются в память - “сортировка-слияние”. При этом каждый файл записывается и читается только один раз.
lavrton
python-er
Можно. Именно так сортируют наборы данных, которые не умещаются в память - “сортировка-слияние”. При этом каждый файл записывается и читается только один раз.
А подробней где можно узнать?
slav0nic
не смотрел http://neopythonic.blogspot.com/2008/10/sorting-million-32-bit-integers-in-2mb.html ?
python-er
lavrton
python-er
Можно. Именно так сортируют наборы данных, которые не умещаются в память - “сортировка-слияние”. При этом каждый файл записывается и читается только один раз.
А подробней где можно узнать?
Вам сортировать?

Сортировка:
1. взять из последовательности очередную порцию данных
2. отсортировать
3. записать в отдельный файл
4. пока не конец - перейти в 1.
получаем несколько отсортированных файлов.

Объединение:
1. открыть все отсортированные файлы
2. прочитать из каждого по очередному элементу
3. сравнить и записать наименьший в выходной файл
4. прочитать следующий элемент на место записанного
5. перейти к 3

Где-то так.
mindinpanic
Возможно поможет рефакторинг кода с использованием генераторов.
user_id
может я не сильно понял вопроса. Но если ОС Линукс то

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
sudo mkswap /swapfile
sudo swapon /swapfile
sudo cp /etc/fstab /etc/fstab.orig

Но работать будет медленней чем с оперативки.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB