2009-12-09 4 views
3

Quelqu'un peut-il donner un aperçu des lignes verbosegc suivantes sur un runtime Java avec CMS GC activé? Plus précisément:Définition des lignes GC mark-preclean-sweep-reset de Java?

  1. L'événement à 29.490 indique-t-il l'emplacement du tas dans les eaux hautes pour le marquage?
  2. Quelle est la phase preclean et que fait-elle d'autre que le marquage?
  3. Quelle est la phase reset? Pourquoi cela prendrait-il du temps si ce n'était pas seulement la fin du balayage?
  4. Enfin, quels sont les zones Rescan, grey et root et remark zones et métriques sur l'événement à 29.653? Allons-nous supposer que ce ne sont que des mesures de tas rapportées pour le balayage subséquent? Si oui, pourquoi consomment-ils du temps?

verbosegc journal extrait:

29.490: [GC [1 CMS-initial-mark: 16225K(17684K)] 16737K(22420K), 0.0030839 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
29.494: [CMS-concurrent-mark-start] 
29.652: [CMS-concurrent-mark: 0.158/0.158 secs] [Times: user=0.16 sys=0.00, real=0.16 secs] 
29.652: [CMS-concurrent-preclean-start] 
29.652: [CMS-concurrent-preclean: 0.000/0.000 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
29.653: [GC[YG occupancy: 512 K (4736 K)]29.653: [Rescan (non-parallel) 29.654: [grey object rescan, 0.0001517 secs]29.654: [root rescan, 0.0030887 secs], 0.0033817 secs]29.657: [weak refs processing, 0.0000271 secs] [1 CMS-remark: 16225K(17684K)] 16737K(22420K), 0.0035183 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
29.658: [CMS-concurrent-sweep-start] 
29.679: [CMS-concurrent-sweep: 0.022/0.022 secs] [Times: user=0.03 sys=0.00, real=0.03 secs] 
29.680: [CMS-concurrent-reset-start] 
29.703: [CMS-concurrent-reset: 0.022/0.022 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] 
29.797: [GC 29.797: [DefNew: 4736K->512K(4736K), 0.0207183 secs] 20800K->17172K(31512K), 0.0209119 secs] [Times: user=0.01 sys=0.02, real=0.03 secs] 

Merci,

Répondre

Questions connexes