与通过JVM进行的常规GC调整相比,JProfiler“运行GC”按钮用于清理垃圾的内容是什么
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了与通过JVM进行的常规GC调整相比,JProfiler“运行GC”按钮用于清理垃圾的内容是什么相关的知识,希望对你有一定的参考价值。
我有java企业应用程序,因为几天后消耗更多内存,即使GC正在运行并且我们有足够的参数设置(ConcMarkSweepGC)它也没有释放完整的内存。
当我附加了JProfiler时,可以看到每当GC运行时,它只是清除,如果它消耗9GB,只有大约1到1.2 GB被清除。同时,如果我点击JProfiler附带的“运行GC”按钮,它将从9 GB占用中清除至少6-7 GB。
我试图了解Jprofiler GC与应用程序执行的常规GC的比较。
以下是所需的一些细节: - App服务器:Wildfly 9 - Java版本:Java 8 - 操作系统:Windows 2012 - 64位
对此有任何帮助会有所帮助。提前致谢。
不同GC算法之间的行为有所不同,但原则上旧空间上的GC不应该始终清除所有未使用的内存。在New Space中,我们看到一个复制并行GC来对抗内存碎片,但旧空间应该要大得多。运行这样的GC会导致长时间的停止。您选择了ConcMarkSweepGC
这是一个并发GC,如果有足够的可用内存,它将不会尝试执行完全停止的GC循环。您可能已经使用JProfiler在Old Space上启动了一个完全停止世界的GC。
如果您想详细了解它,请阅读JVM中的不同GC算法。它们中有很多,它们的设计目标不同。
以上是关于与通过JVM进行的常规GC调整相比,JProfiler“运行GC”按钮用于清理垃圾的内容是什么的主要内容,如果未能解决你的问题,请参考以下文章