Java - 解决大于内存限制的问题

标签 java algorithm

我最近在思考以下场景:假设你有一个巨大的数据库,你想在加载其中的一部分的同时执行一些计算。可能是这种情况,即使是该数据库的一小部分也可能无法放入非常有限的 Java 堆内存中。人们如何着手解决这些障碍? Google 如何在内存空间有限的情况下对 TB 级数据进行分析?

预先感谢您的回复。

最佳答案

简短的回答是,您需要以适合内存的 block 的形式处理数据,然后将这些分块计算的结果组装成最终答案(可能分多个阶段)。一个常见的分布式范例是 Map Reduce:参见 here有关 Google 原始实现的详细信息,以及 Hadoop用于开源实现。

关于Java - 解决大于内存限制的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11192681/

相关文章:

java - 如何抓取随机视频在特定条件下播放

java - FileInputStream读取方法不断返回194

algorithm - 合并排序与随机拆分

算法题: Need to dynamically INCREMENT from 00FF00 to FF0000 over TIME, C#/Java

填充三角形的算法

java - 验证给定级别的所有节点在二叉树中是否具有不同的值

java - ExecutorService 并发行为不稳定且不稳定

java - 为什么我们必须在 AES 算法中使用 Base64 库?

有向图问题的算法

java - 为什么我在运行应用程序时会收到此错误?