[英]How to estimate the memory size of data structures/variables in Java?
我正在为一个班级做一个项目,我应该在该类中实现研究论文中描述的算法并运行论文中描述的实验。 本文与最短路径查询有关,因此我正在使用JUNG库。 纸和用于实验的数据集被发现在这里 。
无论如何,实验的一部分涉及将算法所使用的数据结构(从原始图形派生的树和最短路径上的一些信息)所需要的内存与在其上运行的其他算法中的数据结构所使用的内存进行比较。同一张图。 该论文的作者使用C ++编写了代码,但是我的教授让我们选择了用于该项目的语言,所以我选择了Java,因为我已经使用了更多的语言,因此在其中编写代码的速度更快...但是现在我还没有确定如何弄清楚内存使用情况。
我发现有几个问题在问类似的问题,但有几个是古老的(4或5年),而另一些似乎并没有问完全相同的问题。 他们正在计算不会改变的结构的大小。 因此,我希望有人可以为我提供一种算法,方法,甚至更好的库,可以对此提供一个很好的估计。 我不认为它是准确的,但至少我需要某种估计。
您要查看各种SizeOf实现:
此处: http : //www.javaworld.com/javaworld/javaqa/2003-12/02-qa-1226-sizeof.html (尽管这是为静态大小而不是运行时大小设计的)
但是, 这个问题似乎有更好的答案。
我认为这取决于Java虚拟机的实现。 在文档http://java.sun.com/docs/books/jni/download/jni.pdf或http://en.wikipedia.org/wiki/Java_Native_Interface中 ,类型映射到C ++到Java。
举例来说,
java boolean类型为unsigned char jboolean unsigned 8位
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.