我正在使用以下方法测试代码块的内存消耗:
long totalMemory = Runtime.getRuntime().totalMemory();
long freeMemory = Runtime.getRuntime().freeMemory();
使用的内存是totalMemory
和freeMemory
之间的差异。我以完全相同的条件启动并运行相同的程序三次。但是使用的内存量差别很大:
1120M
802M
312M
可能是什么原因引起的?我应该将三者的平均值作为代码的内存使用量吗?第一次这样做,并感谢您对此的任何见解。
答案 0 :(得分:1)
这是因为java java vitual machine(JVM)。 Java使用三种类型的memmory结构。
所以垃圾收集器也在JVM中运行。这也会改变内存使用情况。您可以通过此链接获取更多详细信息。