我有一個模塊支持使用公司標準接口創建地理對象。創建這些對象後,將調用update_db()
方法,並將所有對象更新到數據庫中。Python緩存列表
爲了在更新生產數據庫之前保留計數器和統計信息,必須在一個會話中插入所有對象。
問題是,有時只有太多的對象,並且內存變滿。
有沒有辦法在Python中創建一個緩存列表,以處理不適合內存的列表?
我的總體思路是:
class CachedList(object):
def __init__(self, max_memory_size, directory)
def get_item(index)
def set_item(index)
def del_item(index)
def append(item)
一個普通的名單將在初始化時被創建。當列表大小超過max_memory_size
時,列表元素被酸洗並存儲在directory
的文件中。 get_item()
,set_item()
和del_item()
將處理存儲在內存中的數據,或者從磁盤「交換」它來訪問它。
- 這是一個很好的設計?有沒有任何標準的選擇?
- 如何強制垃圾回收
pickle
-列表中的某些部分?
感謝,
亞當
準確地說,確切地說,絕對是我需要的。如果可以的話,會給予更多的讚揚。 – 2010-07-21 17:15:17