基于Python磁盘的字典
我正在运行一些动态编程代码(试图通过暴力破解来证明Collatz猜想=
P),并且正在使用一个dict来存储我已经计算出的链的长度。显然,它在某个时刻耗尽了内存。有什么简单的方法可以使用a的某种变体,dict
当它的空间不足时,该变体会将页面的一部分分页到磁盘上?显然,这将比内存中的指令慢,并且可能最终会占用我的硬盘空间,但这可能适用于其他并非徒劳的问题。
我意识到基于磁盘的字典几乎是一个数据库,因此我使用sqlite3手动实现了一个字典,但是我没有以任何智能的方式来实现它,而是让它一次查询数据库中的每个元素。它慢了大约300倍。
是最聪明的方法来创建我自己的一组字典,一次只在内存中保留一组字典,然后以某种有效的方式将它们分页出来吗?
-
通常使用Berkeley
DB或类似的方法解决磁盘上的哈希-Python数据持久性文档中列出了几个选项。您可以在内存中缓存它的前面,但是我首先要针对本机性能进行测试;如果操作系统缓存到位,则可能会出现相同的结果。