测量Linux中的内存使用情况

时间:2014-04-01 18:25:05

标签: java linux runtime

我正在使用以下方法测试代码块的内存消耗:

long totalMemory = Runtime.getRuntime().totalMemory();
long freeMemory = Runtime.getRuntime().freeMemory();

使用的内存是totalMemoryfreeMemory之间的差异。我以完全相同的条件启动并运行相同的程序三次。但是使用的内存量差别很大:

1120M
802M
312M

可能是什么原因引起的?我应该将三者的平均值作为代码的内存使用量吗?第一次这样做,并感谢您对此的任何见解。

1 个答案:

答案 0 :(得分:1)

这是因为java java vitual machine(JVM)。 Java使用三种类型的memmory结构。

  1. 堆记忆
  2. 非堆内存
  3. 其他记忆
  4. 所以垃圾收集器也在JVM中运行。这也会改变内存使用情况。您可以通过此链接获取更多详细信息。

    http://www.yourkit.com/docs/kb/sizes.jsp