我正在寻找一种用于缓存大量数据的解决方案.
相关问题,但针对不同语言:
Python基于磁盘的字典
磁盘支持的STL容器类?
关于不同术语的问题:
在C#中寻找一个简单的独立持久字典实现
我不需要(或者想要支付任何费用)持久性,事务,线程安全等,并且想要使用比List <>或Dictionary <>更复杂的东西.
如果我必须编写代码,我将把所有内容保存为临时目录中的文件:
string Get(int i) { File.ReadAllText(Path.Combine(root,i.ToString()); }
在我的情况下,索引将是一个int
(并且它们应该是连续的或足够接近的)并且数据将是一个string
所以我可以放弃对待两个POD并且宁愿超光并且做到这一点.
用法是我有一系列3k文件(如文件#1到#3000),总计650MB,需要为序列中的每一步做差异.我希望总数大约相同或更多,我不想将所有内容保留在内存中(更大的情况可能会出现在我无法实现的地方).
很多人为我的问题提出了不同的解决方案.然而似乎没有人针对我的小利基.我正在考虑磁盘备份缓存的原因是因为我预计我当前的使用将耗尽我可用地址空间的1/3到1/2.我担心较大的案件会耗尽空间.我并不担心踩踏,持久或复制.我正在寻找的是使用最少代码,最小使用占用空间,最小内存开销和最小复杂性的最小解决方案.
我开始认为我过于乐观了.