如何估计Java中数据结构/变量的内存大小?

时间:2012-04-18 14:19:46

标签: java jung

我正在为一个课程做一个项目,我应该实施研究论文中描述的算法并运行本文所述的实验。本文与最短路径查询有关,因此我正在使用JUNG库;找到了用于实验的论文和数据集here

无论如何,实验的一部分涉及将算法使用的数据结构所需的内存(从原始图形派生的树和最短路径上的一些信息)与其他算法中的数据结构使用的内存进行比较。在同一图表上运行。该论文的作者用C ++编写了代码,但是我的教授让我们选择使用哪种语言进行这个项目,所以我选择了Java,因为我已经使用了它,因此编写代码更快...但是现在我不是确定如何弄清楚这个内存使用情况。

我发现了一些提出类似问题的问题,但有几个问题已经过时(4年或5年),其他问题似乎没有提出相同的问题;他们正在计算不会改变的结构的大小。所以我希望有人能指出我的算法,方法,甚至更好的图书馆,可以给出一个很好的估计。我不认为它需要准确,但我至少需要某种估计。

2 个答案:

答案 0 :(得分:1)

您想要查看各种SizeOf实现:

然而,this question似乎有更好的答案。

答案 1 :(得分:0)

我认为这取决于Java虚拟机的实现。在文档http://java.sun.com/docs/books/jni/download/jni.pdfhttp://en.wikipedia.org/wiki/Java_Native_Interface中,映射到C ++到Java的类型。

例如,

java boolean类型是      unsigned char jboolean unsigned 8 bits