当前位置: 首页 > 面试题库 >

基于Python磁盘的字典

晏阳飙
2023-03-14
问题内容

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

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

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


问题答案:

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



 类似资料:
  • 问题内容: Java是否有(或有可用的库)允许我拥有基于磁盘的HashMap?它不需要是原子的或任何东西,但是它将通过多个线程进行访问,并且如果两个线程同时访问同一个元素,则不会崩溃。 有人知道吗? 问题答案: 无论是属性文件或Berkeley DB的 可能是你在找什么。在自身实现,并提供了一些方法来从和到一个文件中。通常建议将Berkeley DB作为轻量级键/值对数据存储。

  • 本文向大家介绍基本磁盘和动态磁盘之间的区别,包括了基本磁盘和动态磁盘之间的区别的使用技巧和注意事项,需要的朋友参考一下 基本磁盘和动态磁盘都是Windows操作系统中可用的磁盘配置。基本磁盘是从DOS,Windows最初的日子到现在。从Windows 2000开始可以使用动态磁盘。 基本磁盘 基本磁盘配置适用于分区,分区表和逻辑驱动器的概念。一个磁盘最多可以具有四个分区或三个分区以及一个具有多个逻

  • 以下各节的脚本展示了如何监控磁盘和I/O活动。 统计磁盘读写状况 本节展示了如何找出磁盘读写最频繁的进程。 disktop.stp #!/usr/bin/env stap # # Copyright (C) 2007 Oracle Corp. # # Get the status of reading/writing disk every 5 seconds, # output top ten e

  • 本文向大家介绍详解基于Linux的LVM无缝磁盘水平扩容,包括了详解基于Linux的LVM无缝磁盘水平扩容的使用技巧和注意事项,需要的朋友参考一下 环境 名称 属性 CPU x5650 内存 4G 磁盘 20G+4TB   这时候,我们假设服务器已经有如下东西: 安装好了Parted(yum install parted) 分区容量已经告捷,公司为服务器增加了一块4T硬盘用来增加容量! 除了/bo

  • 本文向大家介绍Vmware添加磁盘的方法:扩展磁盘,包括了Vmware添加磁盘的方法:扩展磁盘的使用技巧和注意事项,需要的朋友参考一下 这篇文章介绍了一下如何在Vmare下添加或扩展磁盘并使之有效。 场景 创建Linux时分配磁盘空间随着使用的增加,使用率逐渐升高,此时需要在添加或者扩展一下磁盘。 比如:此Linux(CentOS 7.3)的磁盘为20G,目前已经使用到接近80% 扩展磁盘或者添加

  • 7.1 cache_dir指令 cache_dir指令是squid.conf配置文件里最重要的指令之一。它告诉squid以何种方式存储cache文件到磁盘的什么位置。cache_dir指令取如下参数: cache_dir scheme directory size L1 L2 [options] 7.1.1 参数:Scheme Squid支持许多不同的存储机制。默认的(原始的)是ufs。依赖于操作