我目前正在玩一些 SQLAlchemy,这真的很整洁。
为了测试,我创建了一个包含我的图片存档的巨大表,由 SHA1 哈希索引(以删除重复项:-))。这是令人印象深刻的快速...
select *
为了好玩,我对生成的 SQLite 数据库做了相当于 a的操作:
session = Session()
for p in session.query(Picture):
print(p)
我希望看到哈希滚动,但它只是继续扫描磁盘。与此同时,内存使用量猛增,几秒钟后就达到了 1GB。这似乎来自 SQLAlchemy 的身份映射功能,我认为它只是保留弱引用。
有人可以向我解释一下吗?我以为在写出哈希后会收集每个图片p!?