我有一组哈希(MD5的前64位,所以它们是非常随机分布的)我希望能够看到一个新的哈希是否在一个集合中,并将它添加到一个集合中.
集合不是太大,最大的将是数百万个元素,但是有数百个集合,所以我无法将它们全部保存在内存中.
到目前为止我有一些想法:
我错过了一些非常明显的东西吗 任何提示如何实现良好的基于磁盘的哈希表?
我有一个中等大小的数据集,大约800 MB左右,这基本上是一个很大的预计算表,我需要将一些计算加速几个数量级(创建该文件需要几个mutlicores计算机天来使用优化生成和多线程算法......我真的需要那个文件).
现在已经计算了一次,那么800MB的数据是只读的.
我无法忍受它在记忆中.
截至目前,它是一个巨大的800MB文件,但如果可以提供帮助,拆分成较小的文件不是问题.
我需要在该文件中读取大约32位数据的大量时间.我不知道在哪里我需要读取这些数据:读取是均匀分布的.
在这样的文件或文件中随机读取Java的最快方法是什么?理想情况下,我应该从几个不相关的线程进行这些读取(但如果需要,我可以在单个线程中对读取进行排队).
Java NIO是可行的吗?
我不熟悉'内存映射文件':我想我不想在内存中映射800 MB.
我想要的只是访问这些800MB基于磁盘的数据的最快随机读取.
顺便说一下,如果人们想知道这与我不久前提出的问题完全不同: