当前位置:  开发笔记 > 编程语言 > 正文

如何在java中获取java进程使用的内存

如何解决《如何在java中获取java进程使用的内存》经验,为你挑选了1个好方法。

我通过部署自己的类来运行JBOSS服务器.现在我开始对我的应用程序进行一些操作.现在我想知道我的应用程序在执行操作之前和之后使用的内存.请在这方面支持我



1> Stephen..:

通过使用MemoryMXBean(通过调用ManagementFactory.getMemoryMXBean() 以及[Runtime.getRuntime()] 检索(http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html #getRuntime())的方法[.totalMemory()](http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html#totalMemory()),[. maxMemory()](http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html#maxMemory())和[.freeMemory()](http:// java .sun.com/J2SE/1.4.2 /文档/ API /爪哇/郎/ Runtime.html#freeMemory())

请注意,这不是一个确切的技术:在创建新对象时,可能会分配其他临时对象,这将无法为您提供准确的度量.我们知道,java垃圾收集不能保证,所以你不一定能做到这一点来消除死对象.

如果您进行研究,您会发现大多数尝试进行这些测量的代码都会有Runtime.gc()调用和休眠等循环,以确保测量准确无误.这只适用于某些JVM实现......

在应用服务器/已部署的应用程序中,您可能只会在分配堆并且gc触发时获得总测量/使用量更改,但它应该足够了.[我假设你不会实现gc()并在生产代码中睡觉:)]

推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有