[英]Get information about jvm memory usage inside the java code
有许多方法可以离线分析jvm内存使用情况,例如MAT,jmap。 但是,在运行时是否有任何方法可以测量代码内部的内存使用情况? 任何建议将不胜感激。
请参考官方Java文档,即https://docs.oracle.com/javase/8/docs/api/java/lang/Runtime.html
例如:
Runtime.getRuntime().totalMemory() // total memory available
Runtime.getRuntime().freeMemory() // free memory
这是一篇可能有用的文章
任何建议将不胜感激。
既然您已寻求建议....我的建议将是-除了在开发时探索各种选择之外,请勿尝试这样做。
如果试图编写一个估计对象大小并利用此信息来适应其行为的程序,则很可能会遇到各种性能问题,并花费大量时间来确定如何避免它们。 而且您的应用程序将变得更加复杂,并且难以维护。
另一点建议:不要迷恋内存中有多少空间对象。 除非您的数据结构非常大,或者平台上的内存很少,否则在这里和那里保存一些字节不会有什么区别。
话虽如此,这个问答很好地涵盖了这个主题:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.