java - 测量 Linux 中的内存使用情况

标签 java linux runtime

我正在测试一段代码的内存消耗,使用:

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

已用内存是totalMemoryfreeMemory 之间的差值。我在完全相同的条件下启动并运行了同一个程序三次。但是使用的内存量差异很大:

1120M
802M
312M

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

最佳答案

这是由于 java java vitual machine (JVM) 造成的。 Java 使用三种类型的内存结构。

  1. 堆内存
  2. 非堆内存
  3. 其他内存

所以垃圾收集器也运行在 JVM 中。这也影响改变内存使用。您可以引用此链接以获取更多详细信息。

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

关于java - 测量 Linux 中的内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22793892/

相关文章:

算法 : Find recursive equation of divide and conquer algorithm

java - Play 框架的 CPU 负载

java - (Java)if 语句优化

java - 标准 API 中是否有任何方法可以反转 retainAll()?

c++ - 使用鼠标进行非鼠标输入

java - eclipse 4.5.1。 - DTP 插件 - 捆绑 org.eclipse.core.runtime

java - Hibernate JPA 序列(非 Id)

c - Linux 管道作为输入和输出

Python readlines Api 从串口访问时需要很长时间

javascript运行时错误函数未定义