/ / En Java 8, est-il possible d'utiliser le paramètre JVM pour contrôler quand (ou dans quelle condition) décharger la classe? [dupliquer] - java, ramasse-miettes, chargeur de classes, métaspace

En Java 8, est-il possible d’utiliser un paramètre JVM pour contrôler quand (ou dans quelle condition) décharger une classe? [dupliquer] - java, ramasse-miettes, chargeur de classes, métaspace

Dans mon test JMeter, je constate que JMeter continue de charger les classes javascript_gen_cmd__xxx et que le test ne peut pas atteindre le débit que j’ai défini.

Chargement de classe depuis JConsole Lorsque je clique sur le bouton "Perform GC" dans JVisualVM, les classes sont déchargées et le débit atteint.

Donc, je pense que cela aiderait si je pouvais indiquer quand le GC devrait avoir lieu, Par exemple, lorsque le nombre total de classes chargées atteint un certain nombre.

J’ai essayé -XX: MetaspaceSize = 120M, mais cela n’a pas déclenché le déchargement de la classe lorsque l’utilisation du métaspace a atteint 120 Mo.

Réponses:

0 pour la réponse № 1

Quelque chose comme -XX:MaxMetaspaceFreeRatio=30 -XX:MinMetaspaceFreeRatio=10 devrait provoquer son remplissage rapide et ainsi déclencher des GC de déchargement de classe.

Alternativement -XX:+ExplicitGCInvokesConcurrent -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses et en utilisant CMS ou G1 et le tir System.gc() via une minuterie pourrait aussi fonctionner.