在执行期间,java程序如何告诉它使用了多少内存?

在执行期间,java程序如何告诉它使用了多少内存?

我不在乎它的效率如何!

VonC的答案是一个交互式解决方案 – 如果您想以编程方式知道,可以使用Runtime.totalMemory()来查找JVM使用的总量,并使用Runtime.freeMemory()来查明其中有多少仍然可用(即它被分配 JVM,但没有 JVM中分配 – 新对象可以使用这个内存)。

这些是实例方法 – 使用Runtime.getRuntime()来首先获取单例实例。

如果你有一个java1.6,并且你的程序在java 1.4.2,1.5或1.6中运行,你可以启动一个visualVM会话 ,连接到你的应用程序,并关注内存(等等)

用Visual VM监控应用程序的映像

(此时不显示图像,因此请参阅监视应用程序以获取说明。)

这不是准确的,但是对于粗略估计,只需从Runtime.getRuntime.freeMemory()减去Runtime.getRuntime.totalMemory() 。 在程序开始时执行此操作,以了解JVM's开销内存使用情况,并在执行过程中按时间间隔进行操作。

java.lang.Runtime.totalMemory()将为您提供所需的信息 – http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html