谢谢诸位,问题解决了。
还是对原数据库的数据做了预处理,使用ZODB又另外实时建了一个临时数据库,把那个一堆的数据存成OOBTree而不是dict。
原理是, OOBTree的keys是可hash的,但每次取keys的地址不一样,所以弄了个带cache的实现,这个cache又可以存到数据库里。
内存降到之前1/3左右。代价就是速度慢了些,会写个比较大的临时文件出来。
【 在 pcal 的大作中提到: 】
: 我有段代码,逻辑总结起来比较简单:
: @functools.cache
: def a_long_time_calc(cis):
: ...................
--
FROM 221.224.37.*