3

所以我有一个很大的整数列表,我必须使用(大约 70Mb)。作为阅读它们的过程的一部分,我需要暂时存储它们。我可以将它们分布在几个 IntBuffers 上,或者分配几个大数组。

但是,我找不到任何关于 IntBuffer 在内存使用方面与数组进行比较的文档(以及 java 添加的所有元数据)。有人对这个有了解吗?

4

2 回答 2

3

相对于 70MB 的 int,IntBuffer 添加的元数据什么都不是。但是分析器会给你一个更完整的答案。

于 2012-06-24T21:30:57.330 回答
3

int[]如果数组很大,则 a和堆IntBuffer或直接IntBuffer在内存使用方面几乎没有区别,尤其是如果数组很大。(有一个小头顶)

在性能方面int[]是最快的,直接IntBuffer使用本机字节排序是第二快的。IntBuffer 的优点是它在堆外,您可以拥有更大的大小,例如 70 GB,而不会增加堆大小或 Full GC 时间。

对于 70 MB 阵列,它足够小,最简单的解决方案int[]可能是最好的。(它也将是最容易编写和最有效的运行)

于 2012-06-25T06:04:49.350 回答