Maison  >  Questions et réponses  >  le corps du texte

java - jvm 年轻代 如何回收 survivor 对象

下一次Eden 满了 会将对象放到之前清空的 survivor1的区域里

问:

PHPzPHPz2743 Il y a quelques jours892

répondre à tous(2)je répondrai

  • PHP中文网

    PHP中文网2017-04-18 10:53:28

    Bonjour lz, j'ai déjà vu votre commentaire sur mon article Une brève analyse de la gestion de la mémoire JVM, et j'ai également vu votre question. C’est mentionné dans mes articles :

    1. La zone survivant appartient à la jeune génération et utilise l'algorithme de collecte de copies

    2. Les objets qui sont encore en vie après avoir été déplacés plusieurs fois entre les deux zones Survivant (la valeur par défaut est 15 fois) seront éventuellement déplacés vers l'ancienne génération

    3. Les objets exceptionnellement grands entrent directement dans l'ancienne génération

    répondre
    0
  • 怪我咯

    怪我咯2017-04-18 10:53:28

    Il est recommandé de lire « Compréhension approfondie de la machine virtuelle Java ».

    1. Les algorithmes GC de la nouvelle génération sont presque tous des algorithmes de réplication, c'est-à-dire que le survivant est également copié sur l'ancienne génération.
    2. Il existe plusieurs situations où les objets passent de la nouvelle génération à l'ancienne génération

    2.1有一个年龄参数MaxTenuringThreshold用来判断,每次对象熬过一次GC,年龄加1,当到达设定的阈值时,可以进入老年代。
    2.2比较大的对象(需要大量连续的内存空间),同样,虚拟机也提供了一个参数PretenureSizeThreshold,可以设置这个值,当对象大于设置值可以直接进入老年代。
    2.3如果Survivor空间中相同年龄的对象大小总和大于Survivor空间的一般,则年龄大于或等于该年龄的对象就可以进入老年代。这里是属于动态判定,适应那些内存较小的情况
    

    Il existe d'autres situations, vous pouvez lire le livre

    répondre
    0
  • Annulerrépondre