IntBuffer如何在内存使用方面与数组进行比较?

时间:2012-06-24 21:25:36

标签: java

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

我无法找到任何关于IntBuffer如何在内存使用方面与数组进行比较的文档(包括java添加的所有元数据)。有谁知道这个?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

如果数组很大,就内存使用情况而言,int[]和堆IntBuffer或直接IntBuffer之间的差别很小。 (头顶很小)

在性能方面int[]是最快的,具有本机字节排序的直接IntBuffer是第二快的。 IntBuffer的优势在于它的堆积很大,你可以拥有更大的尺寸,例如70 GB而不增加堆大小或完整GC时间。

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

相关问题