在执行期间,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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top