是否可以使用 JAVA 在 32 位系统上对 3 GB 的 java 进行排序
Is it possible to sort 3 GB of java on 32 bit system using JAVA
我一直在学习一些与内存相关的基本概念。
假设我有超过 3 GB 的数据要排序,那么是否可以在 32 位系统或 32 位 JVM 上对其进行排序。
这个Heap必须完全驻留在RAM中还是也可以驻留在硬盘中?
在32位系统中绝对可以对3GB以上的数据进行排序。
诀窍是选择一种不需要同时在内存中分配整个数组的排序算法。实现此目的的一种方法是使用诸如桶排序、外部合并排序或分而治之排序算法之类的算法,这些算法不需要一次将整个数据集加载到内存中。
一般来说,分而治之算法的工作原理是将原始数据(假设您有 40 GB 的数据)分成更小的段(例如每个 1 GB),分别对每个段进行排序,然后合并这些段,直到数据已完全排序。
检查 this post 以获得类似排序算法的链接。
我一直在学习一些与内存相关的基本概念。
假设我有超过 3 GB 的数据要排序,那么是否可以在 32 位系统或 32 位 JVM 上对其进行排序。
这个Heap必须完全驻留在RAM中还是也可以驻留在硬盘中?
在32位系统中绝对可以对3GB以上的数据进行排序。
诀窍是选择一种不需要同时在内存中分配整个数组的排序算法。实现此目的的一种方法是使用诸如桶排序、外部合并排序或分而治之排序算法之类的算法,这些算法不需要一次将整个数据集加载到内存中。
一般来说,分而治之算法的工作原理是将原始数据(假设您有 40 GB 的数据)分成更小的段(例如每个 1 GB),分别对每个段进行排序,然后合并这些段,直到数据已完全排序。
检查 this post 以获得类似排序算法的链接。