126 votes

Quand System.gc() fait-il quelque chose ?

Je sais que le ramassage des ordures est automatisé en Java. Mais j'ai compris que si vous écrivez System.gc() dans votre code, la VM Java peut décider ou non, au moment de l'exécution, d'effectuer un ramassage des déchets à ce moment-là. Comment cela fonctionne-t-il précisément ? Sur quelle base/avec quels paramètres exactement la VM décide-t-elle de faire (ou de ne pas faire) une GC lorsqu'elle voit un objet de type System.gc() ? Existe-t-il des exemples dans lesquels il est une bonne idée de mettre cela dans votre code ?

0voto

Asterisk Points 1646

Selon Thinking in Java de Bruce Eckel, l'un des cas d'utilisation de l'explicite est le suivant System.gc() est lorsque vous voulez forcer la finalisation, c'est-à-dire l'appel à finaliser méthode.

0voto

fleture Points 38

Pendant que system.gc fonctionne, il arrête le monde : toutes les réponses sont arrêtées afin que le garbage collector puisse scanner chaque objet pour vérifier s'il doit être supprimé. si l'application est un projet web, toutes les requêtes sont arrêtées jusqu'à ce que gc se termine, et cela fera que votre projet web ne pourra pas fonctionner dans un monent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X