[NDLR] or RPSC, trois d'argent et quatre saisons de recrutement, et l'épidémie n'affectera pas trop. Selon la propagande officielle de mobiliser octets, la Division a décidé d'élargir l'échelle de recrutement cette année à Wuhan, fournissant près de 2000 emplois, à promouvoir l'emploi des talents locaux. En outre apparu personnes battant octet d'entrée en ligne à distance, pas à la société de recevoir des nouvelles de l'ordinateur portable. Rassurez-vous, ce n'est pas la publicité, juste pour illustrer, l'épidémie de développement imbattable des entreprises chinoises, mais ne bloque pas la demande de la Chine pour le travail. Et si vous êtes une entrevue pour l'emploi maker Java, cet article devrait probablement être votre « côté par. »
Auteur | _ Chen haha
Zebian | Hu Weiwei
Produit | RPSC (ID: CSDNnews)
Dans cet article, nous examinerons la collecte des ordures Java, et l'importance de ses travaux.
La définition de la collecte des ordures Java
Java processus de collecte des déchets est un programme Java assure la gestion automatique de la mémoire. les programmes Java compilés en bytecode, Java Virtual Machine peut (appelée JVM) pour fonctionner. Lorsque le programme Java exécuté sur la machine virtuelle Java, il va créer des objets sur le tas, qui est dédié à la partie de la mémoire du programme. En fin de compte, il ne sera plus besoin de certains objets. Garbage collector pour trouver ces objets inutilisés et les supprimer pour libérer de la mémoire.
Comment le travail de collecte des ordures Java
Java garbage collector est un processus automatique. Les programmeurs ne doivent pas marquer explicitement l'objet à supprimer. Collecte des ordures ménagères dans la machine virtuelle Java dans la réalisation. Chaque collecte des ordures JVM peut être atteint, mais il est bon. La seule exigence est qu'il est conforme à la spécification JVM. Bien qu'il existe de nombreux JVM, mais HotSpot d'Oracle est de loin le plus commun. Il offre une options de collecte des ordures puissantes et sophistiquées.
Bien optimisé HotSpot ayant une pluralité de collecteurs d'ordures pour divers cas d'utilisation, mais tous les éboueurs suivre le même procédé de base. La première étape, la reconnaissance d'objets et non référencé marqués comme la collecte des déchets. La deuxième étape, supprimer les objets marqués. (Facultatif) peut être comprimée mémoire après une récupération de place pour supprimer l'objet, de sorte que les objets restant dans des blocs contigus au segment de début. processus de compression afin de le rendre plus facile pour la mémoire allouée après le bloc de mémoire allouée objet existant au nouvel objet.
Tous garbage collector HotSpot ont réalisé une politique de collecte des ordures par génération d'objets d'âge. Le principe de base de la collecte des ordures de génération est que la plupart des objets sont de courte durée, et seront bientôt ordures collectées après sa création.
Heap divisé en trois parties:
La jeune génération: les objets nouvellement créés a commencé dans la jeune génération. La jeune génération subdivisé dans l'espace Eden Survivor et tout l'espace, tous les nouveaux objets commencent à fonctionner dans l'espace Eden, après quoi la fin d'un cycle de collecte des ordures, l'objet est retiré de l'Eden. Lorsque l'objet est collecté à partir de la jeune génération, qui est un événement de collecte des déchets secondaires.
L'ancienne génération: objets à long terme migrent tôt ou tard de la génération plus âgée à la jeune génération. Lorsque l'objet de la collecte des ordures de la génération précédente, qui est un événement de collecte des ordures majeurs.
Permanents générés: métadonnées (par exemple, des classes et des méthodes) stockées dans une génération permanente. Plus en classe d'utilisation peuvent être collectées à partir d'une poubelle générationnelle permanente.
Lors d'un événement de collecte des ordures complète, au nom de tous les objets utilisés ne soient nettoyés.
Il y a quatre éboueur HotSpot:
Série: Tous série d'événements de collecte des ordures sont effectuées dans un thread. La compression est effectuée après chaque collecte des ordures.
Parallèle: une pluralité de fils secondaires pour la collecte des déchets. collecte des ordures monothread pour la compression de style ancien et grand. De plus, en parallèle à l'aide de variables anciennes plusieurs threads principale collecte des ordures et la compression ancienne génération.
Le CMS (marque concurrente Scan): En utilisant le même algorithme en parallèle, une pluralité de fils secondaires pour la collecte des déchets. Grande collecte des ordures est multi-thread, comme Old parallèle, mais les processus d'application CMS en cours d'exécution en même temps, afin de minimiser l'événement "Stop the World" (c.-à arrêter l'application lorsque le garbage collector est en cours d'exécution). Aucune compression est effectuée.
G1 (priorité Garbage): le dernier garbage collector est conçu pour remplacer la CMS. Il est comme CMS parallèle et simultanée, mais par rapport à éboueur plus, cela fonctionne tout à fait différent.
Les avantages de la collecte des ordures Java
Collecte des ordures Java le plus grand avantage est qu'il peut gérer automatiquement les objets inutilisés supprimés ou des objets inaccessibles à la libération de ressources mémoire importantes. Utiliser un langage sans la collecte des déchets (comme C et C ++) les programmeurs de travail doivent mettre en uvre la gestion de la mémoire manuelle dans son code.
Malgré le travail supplémentaire, mais certains programmeurs favorisent encore la gestion de la mémoire manuelle est meilleure que la collecte des ordures, principalement pour des raisons de contrôle et de performance. Bien que le débat sur la méthode de gestion de la mémoire continue, mais la collecte des ordures est maintenant standard pour de nombreux composants de langage de programmation populaire. Pour les programmes ont un impact négatif sur les performances du garbage collector, Java fournit un certain nombre d'options pour régler le garbage collector pour améliorer son efficacité.
Java Garbage Collection Meilleures pratiques
Pour de nombreuses applications simples, collecte des ordures Java n'est pas une chose consciente programmeurs doivent prendre en compte. Cependant, pour les programmeurs Java veulent améliorer les compétences, les travaux de collecte des ordures Java et comprendre comment les régler est très important.
En plus du mécanisme de base pour la collecte des ordures, l'un des points les plus importants pour comprendre la collecte des ordures en Java est que ce n'est pas la collecte des ordures déterministe ne peut pas prédire lors de l'exécution. Le code peut être inclus dans une invite à utiliser des méthodes System.gc ou Runtime.gc exécuter le collecteur d'ordures, mais ils ne peuvent pas garantir le garbage collector sera effectivement exécuté.
La meilleure façon de régler le drapeau de la collecte des ordures Java est installé sur la machine virtuelle Java. Drapeau peut régler le collecteur des déchets (par exemple, série, G1, etc.) à utiliser, la taille du tas initiale et maximale, la taille (par exemple, la jeune génération, ancienne génération) segment de pile, et ainsi de suite. La nature de la demande d'ajustement est bon de définir les lignes directrices initiales. Par exemple, garbage collector parallèle à haute efficacité, mais souvent conduit à « arrêter le monde » événement, pour le rendre plus approprié pour le traitement back-end, dans ce cas, il peut être une collection d'ordures longue pause.
D'autre part, garbage collector CMS est conçu pour minimiser la pause, le rendant idéal pour la réactivité est d'importantes applications de l'interface graphique. En changeant la pile ou de la taille tas et en utilisant l'outil de mesure jstat comme l'efficacité de collecte des ordures à complète de réglage fin supplémentaire.
Lien original:
https://blog.csdn.net/qq_39390545/article/details/104457216