1

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

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

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

4

2 回答 2

1

您想查看各种 SizeOf 实现:

  • 这里:http ://sizeof.sourceforge.net/

  • 在这里: http ://www.javaworld.com/javaworld/javaqa/2003-12/02-qa-1226-sizeof.html (虽然这是为静态大小而不是运行时大小设计的)

不过,这个问题似乎有更好的答案。

于 2012-04-18T14:24:25.460 回答
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

于 2012-04-18T14:31:35.430 回答