gpt4 book ai didi

java - 为什么在执行 perform GC 后分配的永久代大小会增加?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:30:26 25 4
gpt4 key购买 nike

以下是我从 jvisualvm 执行 perform GC 后拍摄的快照。 Heap StatsPermgen Stats

第一张图片是堆统计数据,第二张图片是永久代统计数据。我无法理解当我执行 GC utilized heap size 减少(如预期的那样)但是永久代的分配大小增加(尽管使用的 permgen 大小保持不变)。可能是什么这种行为的可能解释?

使用的 JVM 参数

-Xbootclasspath/p:../xyz.jar
-Xbootclasspath/a:../abc.jar
-Djava.endorsed.dirs=../resolver
-Djava.library.path=../framework
-Djavax.management.builder.initial=JBeanServerBuilder
-Djavax.net.ssl.trustStore=../certs
-Dorg.mortbay.log.class=JettyLogger
-Xms128m
-Xmx256m
-Xdebug
-Xnoagent
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=2000

注意:出于适当的原因,我已经更改了名称(ex xyz.jar)。

JVm 信息:

JVM: Java HotSpot(TM) 64-Bit Server VM (23.6-b04, mixed mode)
Java: version 1.7.0_11, vendor Oracle Corporation
Java Home: /home/aniket/jdk1.7.0_11/jre
JVM Flags: <none>

最佳答案

  • 内存分配 Heap/Perm/Eden/Young/S1/S2 等空间取决于用于 GC 的底层算法。
  • 分配给上述空间的内存未定义为绝对值参数。它们被定义为与 JVM 可用的总堆/perm 的比率。
  • 以上两点可能指出,当Heap大小发生变化时,所有空间的所有内存分配都会重新评估以保持定义的比率。

下面的链接非常有用:

http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html

关于java - 为什么在执行 perform GC 后分配的永久代大小会增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17877953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com