我有一个模块,它支持使用公司标准界面创建地理对象。在创建这些对象之后,
update_db()
方法,并将所有对象更新到数据库中。
为了在更新生产数据库之前保留计数器和统计信息,在一个会话中插入所有对象是很重要的。
问题是有时对象太多,内存就会满。
有没有一种方法可以在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
,列表元素被pickle并存储在
directory
.
get_item()
,
set_item()
和
del_item()
将处理存储在内存中的数据,或者从磁盘“交换”数据以访问它。
-
这是个好设计吗?有没有标准的替代品?
-
我怎样才能强制垃圾收集
pickle
-这是清单的一部分吗?
谢谢,
亚当