在执行过程中,java程序如何知道它使用了多少内存?

发布于 2024-07-08 11:03:46 字数 56 浏览 6 评论 0原文

在执行过程中,java程序如何知道它使用了多少内存?

我不在乎它的效率有多高!

During execution, how can a java program tell how much memory it is using?

I don't care how efficient it is!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

回首观望 2024-07-15 11:03:46

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

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

VonC's answer is an interactive solution - if you want to know programatically, you can use Runtime.totalMemory() to find out the total amount used by the JVM, and Runtime.freeMemory() to find out how much of that is still available (i.e. it's allocated to the JVM, but not allocated within the JVM - new objects can use this memory).

These are instance methods - use Runtime.getRuntime() to first get the singleton instance.

紫﹏色ふ单纯 2024-07-15 11:03:46

如果您的某个地方有 java1.6 并且您的程序在 java 1.4.2、1.5 或 1.6 中运行,您可以启动 visualVM 会话,连接到您的应用程序,并跟踪内存(以及更多)

使用 Visual VM 监控应用程序的图像

(图像暂时未显示,因此请参考 监控应用程序以获取说明。)

If you are have a java1.6 somewhere and your program is running in java 1.4.2, 1.5 or 1.6, you can launch a visualVM session, connect to your application, and follow the memory (and much more)

image of monitoring application with Visual VM

(The images are not displayed at the moment, so please refers to Monitoring an application for an illustration.)

ゃ懵逼小萝莉 2024-07-15 11:03:46

这并不准确,但为了粗略估计,只需从 Runtime.getRuntime.totalMemory() 中减去 Runtime.getRuntime.freeMemory() 即可。
在程序开始时执行此操作,以了解 JVM 的开销内存使用情况以及执行后期的间隔情况。

This won't be exact, but for a rough estimate, just subtract Runtime.getRuntime.freeMemory() from Runtime.getRuntime.totalMemory().
Do that at the beginning of the program to get an idea of the JVM's overhead memory usage and at intervals latter on in the execution.

眉目亦如画i 2024-07-15 11:03:46

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

java.lang.Runtime.totalMemory() will give you the required info: http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文