标签: disk-based

Python基于磁盘的字典

我正在运行一些动态编程代码(尝试暴力反驳Collat​​z猜想= P)并且我使用dict来存储我已经计算过的链的长度.显然,它在某些时候耗尽了内存.是否有任何简单的方法可以使用某些变体,dict当它用完房间时会将部分内容分页到磁盘上?显然它会比内存中的字典慢,并且最终可能会占用我的硬盘空间,但这可能适用于其他不那么无用的问题.

我意识到基于磁盘的字典几乎就是一个数据库,所以我使用sqlite3手动实现了一个,但是我并没有以任何智能的方式实现它并让它一次查找数据库中的每个元素...它慢了300倍.

是最聪明的方法来创建我自己的一组dicts,一次只保留一个内存,并以一种有效的方式将它们分页?

python database dictionary disk-based

40
推荐指数
4
解决办法
1万
查看次数

c#的磁盘支持字典/缓存

我正在寻找一种用于缓存大量数据的解决方案.

相关问题,但针对不同语言:

关于不同术语的问题:

我不需要(或者想要支付任何费用)持久性,事务,线程安全等,并且想要使用比List <>或Dictionary <>更复杂的东西.

如果我必须编写代码,我将把所有内容保存为临时目录中的文件:

string Get(int i)
{
   File.ReadAllText(Path.Combine(root,i.ToString());
}
Run Code Online (Sandbox Code Playgroud)

在我的情况下,索引将是一个int(并且它们应该是连续的或足够接近的)并且数据将是一个string所以我可以放弃对待两个POD并且宁愿超光并且做到这一点.

用法是我有一系列3k文件(如文件#1到#3000),总计650MB,需要为序列中的每一步做差异.我希望总数大约相同或更多,我不想将所有内容保留在内存中(更大的情况可能会出现在我无法实现的地方).


很多人为我的问题提出了不同的解决方案.然而似乎没有人针对我的小利基.我正在考虑磁盘备份缓存的原因是因为我预计我当前的使用将耗尽我可用地址空间的1/3到1/2.我担心较大的案件会耗尽空间.我并不担心踩踏,持久或复制.我正在寻找的是使用最少代码,最小使用占用空间,最小内存开销和最小复杂性的最小解决方案.

我开始认为我过于乐观了.

c# caching disk-based

11
推荐指数
2
解决办法
2万
查看次数

基于Java磁盘的键值存储

是否有基于文件系统的键值存储的高效Java实现,具有以下功能:

  1. 通过唯一ID存储,覆盖和检索字节数组(可以由存储分配)
  2. 没有内存缓存(读取意味着从文件系统读取,写入意味着立即写入文件系统)
  3. 总数据量可达数TB
  4. 存储对象的数量高达数亿
  5. 可管理的文件系统对象数(在文件系统级别上移动/复制/删除整个存储)

Will Berkeley DB JE会吗?

java storage key-value disk-based

10
推荐指数
1
解决办法
2921
查看次数

Java:基于磁盘的快速哈希集

我需要存储一个大的哈希集,能够包含多达大约2亿个40位值.将其存储为2亿64位值是可以接受的(尽管有2亿*16位丢失).

要求是:

  • 微小的内存占用(磁盘空间不是问题,内存是)

  • 快速contains(long l)add(long l)方法(比SQL快得多)

  • 嵌入式

  • 免费且没有讨厌的许可(没有Berkeley DB).LGPL很好.

  • 没有误报,也没有假阴性,所以像基于磁盘的布隆过滤器这样的东西不是我追求的

SQL 不是我追求的.

因为我真的觉得我的东西后更快速的像这样的(注意解决方案如何比SQL解决方案快得多):

快速的基于磁盘的哈希表?

Google有这样的Java API吗?

基于磁盘的快速键/值对实现我只使用"密钥"工作吗?

或者是其他东西?

我宁愿不重新发明.

java disk-based hashset

8
推荐指数
1
解决办法
4305
查看次数

标签 统计

disk-based ×4

java ×2

c# ×1

caching ×1

database ×1

dictionary ×1

hashset ×1

key-value ×1

python ×1

storage ×1