首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在运行后找到Javas堆的最大大小?

如何在运行后找到Javas堆的最大大小?
EN

Stack Overflow用户
提问于 2011-12-14 18:19:06
回答 5查看 110关注 0票数 1

我正在集群上运行一个大型Java应用程序,并且我有很多可用的内存。因此,我计划用一个巨大的最大堆大小启动我的JVM,并查看它是否工作。但是,我需要多次运行它,并且我想知道在运行期间堆实际变得有多大。我知道我可以使用像VisualVM这样的工具来做到这一点,但是如果我不想运行一个基于ui的大型应用程序呢?在我的应用程序终止后,有没有一些参数我可以发送给jvm来获取这种内存统计信息?或者是一个基于命令行的应用程序,可以很容易地做到这一点?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-12-14 18:23:23

jstat就是你要找的东西。它将打印每秒的统计数据(或您指定的任何数据),然后您可以分析输出以找到最大值。

票数 3
EN

Stack Overflow用户

发布于 2011-12-14 18:28:13

您可以在应用程序中执行此操作:

代码语言:javascript
运行
复制
ManagementFactory.getMemoryMXBean().getHeapMemoryUsage();

然后对返回的MemoryUsage对象使用getCommitted()getUsed()getMax()方法。

票数 2
EN

Stack Overflow用户

发布于 2011-12-14 18:23:49

您需要使用以下内容来分析应用程序:

http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html#LowMemoryDetection

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8502812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档