基于Python磁盘的字典

发布于 2021-01-29 18:16:50

我正在运行一些动态编程代码(试图通过暴力破解来证明Collat​​z猜想=
P),并且正在使用一个dict来存储我已经计算出的链的长度。显然,它在某个时刻耗尽了内存。有什么简单的方法可以使用a的某种变体,dict当它的空间不足时,该变体会将页面的一部分分页到磁盘上?显然,这将比内存中的指令慢,并且可能最终会占用我的硬盘空间,但这可能适用于其他并非徒劳的问题。

我意识到基于磁盘的字典几乎是一个数据库,因此我使用sqlite3手动实现了一个字典,但是我没有以任何智能的方式来实现它,而是让它一次查询数据库中的每个元素。它慢了大约300倍。

是最聪明的方法来创建我自己的一组字典,一次只在内存中保留一组字典,然后以某种有效的方式将它们分页出来吗?

关注者
0
被浏览
169
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    通常使用Berkeley
    DB或类似的方法解决磁盘上的哈希-Python数据持久性文档中列出了几个选项。您可以在内存中缓存它的前面,但是我首先要针对本机性能进行测试;如果操作系统缓存到位,则可能会出现相同的结果。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看