在执行期间,java程序如何告诉它使用了多少内存?
题
在执行期间,java程序如何判断它正在使用多少内存?
我不在乎它的效率如何!
解决方案
VonC的答案是一个交互式解决方案 - 如果你想以编程方式知道,你可以使用 Runtime.totalMemory()以查找JVM使用的总量,以及 Runtime.freeMemory()以查明其中有多少仍然可用(即它已分配给 JVM,但未在 JVM中分配 - 新对象可以使用此内存。)
这些是实例方法 - 使用 Runtime.getRuntime()首先获取单例实例。
其他提示
如果你的某个地方有java1.6并且你的程序在java 1.4.2,1.5或1.6中运行,你可以启动 visualVM会话,连接到您的应用程序,并关注内存(以及更多)
(目前不显示图片,因此请参阅监控应用程序用于说明。)
这不是确切的,但是粗略估计,只需从 Runtime.getRuntime.totalMemory()
中减去 Runtime.getRuntime.freeMemory()
。
在程序开头执行此操作,以了解 JVM的
开销内存使用情况,并在执行过程中按时间间隔进行操作。
java.lang.Runtime.totalMemory()将为您提供所需的信息 - http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html
不隶属于 StackOverflow