我有一個長期運行的Python進程,它產生的數據比我計劃的要多。我的結果存儲在一個列表中,當程序完成後,它將被序列化(醃製)並寫入磁盤 - 如果它達到那麼遠。但是按照這個速度,這個列表很可能會耗盡所有1 GB以上的可用內存,並且這個過程會崩潰,在這個過程中失去了我所有的結果。如何從Linux上當前運行的Python進程訪問數據結構?
我打算修改我的腳本以便定期將結果寫入磁盤,但是如果可能的話,我想保存當前正在運行的進程的結果。有什麼方法可以從正在運行的進程中獲取內存中的數據結構並將其寫入磁盤?
我發現code.interact(),但由於我的代碼中沒有這個鉤子,所以對我來說似乎沒有用(Method to peek at a Python program running right now)。
我在Fedora 8上運行Python 2.5。有什麼想法?
非常感謝。
Shahin
你希望用'當前進程的數據結構'來做什麼?如果你把它保存下來並重新加載,你會不會像你一開始那樣內存不足? – 2010-10-04 04:41:16
在這種特殊情況下,我會將它轉移到另一臺機器(具有更多內存)以反序列化它,並將其寫回零碎或將其直接加載到數據庫中。顯然不可持續,但我只在這裏尋找一次性臨時解決方案。 – Shahin 2010-10-04 05:43:56