У меня есть длительный процесс Python, который генерирует больше данных, чем я планировал. Мои результаты хранятся в списке, который будет сериализован (замаринован) и записан на диск при завершении программы - если он дойдет до этого. Но с такой скоростью, скорее всего, этот список исчерпает всю бесплатную RAM 1+ ГБ, и процесс завершится сбоем, потеряв все мои результаты в этом процессе.Как получить доступ к структуре данных из текущего запущенного процесса Python в Linux?
Я планирую изменить свой сценарий, чтобы периодически записывать результаты на диск, но я хотел бы сохранить результаты текущего процесса, если это возможно. Есть ли способ захватить структуру данных в памяти из работающего процесса и записать его на диск?
Я нашел код.interact(), но поскольку у меня нет этого крючка в моем коде уже, мне это не кажется полезным (Method to peek at a Python program running right now).
Я запускаю Python 2.5 на Fedora 8. Любые мысли?
Большое спасибо.
Shahin
Что вы надеетесь сделать с «структурой данных текущего процесса»? Если вы сохраните его и загрузите обратно, не будете ли вы так же отстать от памяти, как вы должны начать? –
В этом конкретном случае я переношу его на другую машину (с большим объемом памяти), чтобы десериализовать ее и либо записать ее обратно по частям, либо загрузить ее непосредственно в базу данных. Очевидно, что это не устойчиво, но я ищу одноразовое решение. – Shahin