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

时间:2008-10-27 06:25:12

标签: java memory runtime

在执行期间,java程序如何判断它正在使用多少内存?

我不在乎它的效率如何!

4 个答案:

答案 0 :(得分:31)

VonC的答案是一个交互式解决方案 - 如果您想以编程方式了解,可以使用Runtime.totalMemory()查找JVM使用的总量,并Runtime.freeMemory()查看其中有多少是仍然可用(即它已分配 JVM,但未在 JVM中分配 - 新对象可以使用此内存)。

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

答案 1 :(得分:4)

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

image of monitoring application with Visual VM

(目前不显示图片,因此请参阅Monitoring an application进行说明。)

答案 2 :(得分:4)

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

答案 3 :(得分:0)

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