首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与JVM正在进行的常规GC调优相比,JProfiler "Run“按钮用于清除垃圾的用途是什么?

与JVM正在进行的常规GC调优相比,JProfiler "Run“按钮用于清除垃圾的用途是什么?
EN

Stack Overflow用户
提问于 2018-03-01 21:37:03
回答 1查看 506关注 0票数 1

我有java企业应用程序,它从几天以来消耗了更多的内存,尽管GC正在运行,而且我们有足够的参数集(ConcMarkSweepGC),但它并没有释放完整的内存。

当我附加了JProfiler时,可以观察到,每当GC运行时,只需要清除--比如,如果它消耗了9GB,那么只有1到1.2GB是被清除的。同时,如果我点击“运行GC”按钮附带的JProfiler,它清除了至少6-7 GB的9GB占用。

我试图了解与应用程序执行的常规GC相比,Jprofiler所做的额外工作。

以下是所需的少量详细信息:- App server: Wildfli9-Java版本: Java 8- OS: Windows 2012 -64位

这方面的任何帮助都会有帮助的。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-01 21:51:08

不同的GC算法的行为不同,但原则上,旧空间上的GC不应该在任何时候清除所有未使用的内存。在New中,我们看到一个复制并行GC来对抗内存碎片,但是旧空间应该要大得多。运行这样的GC会导致长时间的停止-世界暂停。您选择了ConcMarkSweepGC,这是一个并发GC,如果有足够的空闲内存,它不会尝试执行完整的停止世界GC循环。您可能使用JProfiler在旧空间上启动了一个完整的停止世界GC。

如果您想要详细了解它,请阅读JVM中的不同GC算法。他们中有相当多的人,他们是根据不同的目标而设计的。

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

https://stackoverflow.com/questions/49059078

复制
相关文章

相似问题

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