Maison > Java > javaDidacticiel > Pourquoi l'option MaxPermSize VM est-elle ignorée dans le JDK 8 ?

Pourquoi l'option MaxPermSize VM est-elle ignorée dans le JDK 8 ?

Linda Hamilton
Libérer: 2024-11-14 20:53:02
original
432 Les gens l'ont consulté

Why is the MaxPermSize VM option ignored in JDK 8?

Suppression de PermGen dans JDK 8 : pourquoi l'option VM est ignorée

Introduction

JDK 8 apporté des changements importants dans l'architecture de la machine virtuelle Java (JVM), notamment l'élimination de la génération permanente (PermGen). Ce changement a affecté la façon dont Eclipse et d'autres applications interagissent avec la JVM.

Problème

Lors de l'exécution d'Eclipse dans JDK 8, les utilisateurs peuvent rencontrer un message d'avertissement indiquant que le paramètre MaxPermSize L'option VM est ignorée. Ce message soulève des questions sur les raisons de la suppression de ce paramètre.

Raisons pour ignorer MaxPermSize

Les raisons pour ignorer l'option MaxPermSize VM proviennent de plusieurs inconvénients associés à PermGen dans versions précédentes du JDK :

  • Taille fixe : PermGen avait une taille fixe au démarrage, ce qui rendait difficile l'optimisation de l'allocation de mémoire pour les applications ayant des besoins de chargement de classe dynamique.
  • Types de points d'accès internes :Les objets stockés dans PermGen étaient des objets Java, entraînant des fuites de mémoire potentielles en raison de leur persistance dans les garbage collection.
  • Collections simplifiées : Suppression de PermGen autorisée pour la simplification des cycles complets de garbage collection, supprimant le besoin d'itérateurs spéciaux pour les métadonnées.
  • Désallocation simultanée de données de classe : MetaSpace permet la désallocation simultanée de données de classe en dehors des pauses GC, améliorant ainsi les performances .
  • Améliorations futures : L'élimination de PermGen ouvre la voie à de futures améliorations et optimisations de la JVM qui étaient auparavant limitées par ses contraintes.

Métaespace : Le remplacement

Dans JDK 8, PermGen a été remplacé par Metaspace, qui offre plusieurs avantages :

  • Affinité du chargeur de classe : Metaspace est associé à chargeurs de classes spécifiques, garantissant que la durée de vie des classes correspond au cycle de vie du chargeur correspondant.
  • Allocation linéaire : Metaspace utilise l'allocation linéaire, simplifiant la gestion de la mémoire.
  • Non Récupération individuelle : Metaspace n'effectue pas de récupération individuelle, sauf en cas de redéfinition de classe et d'échecs de chargement, ce qui réduit encore davantage la surcharge.
  • Aucune analyse GC ni compactage : Les objets Metaspace ne sont ni analysés ni compactés. pendant les cycles de récupération de place, améliorant ainsi les performances.
  • Réglage optimisé : Le métaespace peut être réglé à l'aide des indicateurs -XX:MaxMetaspaceSize et -XX:MetaspaceSize, permettant une gestion plus flexible de la mémoire.

Conclusion

La suppression de PermGen dans JDK 8 apporte des avantages significatifs en termes de performances et de stabilité aux applications Java. Bien que l'option MaxPermSize VM ne soit plus pertinente, Metaspace fournit une solution hautement optimisée et efficace pour gérer les métadonnées des applications.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal