获取有关java代码中jvm内存使用情况的信息

时间:2016-08-06 00:06:55

标签: java memory-management jvm

离线分析jvm内存使用的方法有很多种,比如MAT,jmap。但是,有没有办法在运行时测量代码中的内存使用情况?任何建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

请参阅官方Java文档,即https://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html

例如:

Runtime.getRuntime().totalMemory() // total memory available Runtime.getRuntime().freeMemory() // free memory

here是一篇可能有用的文章

答案 1 :(得分:1)

  

非常感谢任何建议。

既然你已经征求了建议......我的建议是 - 除了在开发时间探索选项之外,不要尝试这样做。

如果您尝试编写估计对象大小并利用此信息来调整其行为的程序,则很可能会遇到各种性能问题,并花费大量时间来确定如何避免它们。而且你的应用程序将变得更加复杂,并且难以维护。

另一点建议:不要过分关注空间物体在内存中占用多少空间。除非您的平台上有非常大的数据结构或非常少的内存,否则在这里保存几个字节并没有什么区别。

话虽如此,这个Q& A很好地涵盖了这个话题: