2009-12-02 8 views
2

je me suis tourné sur les options verbeux GC sur mon JDK, et maintenant je vois des lignes telles queComprendre les journaux de GC de Java

25.598: [CMS-concurrent-sweep-start] 
25.622: [CMS-concurrent-sweep: 0.023/0.024 secs] [Times: user=0.02 sys=0.00, real=0.03 secs] 
25.623: [CMS-concurrent-reset-start] 
25.629: [CMS-concurrent-reset: 0.007/0.007 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] 

Quelqu'un veut me dire exactement ce que tous les paramètres signifient là?

  1. Quelle est la différence entre sys + user et real times? Que signifie "0,023/0,024 secondes"?
+0

Quelle version de JDK? J'ai trouvé cet article pour JDK5, mais la sortie semble différente (et ils mentionnent, la sortie varie avec la version JDK) http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html –

+0

JDK6 .... ............. – ripper234

Répondre

3

Je pense qu'il est juste lié à l'utilisation du processeur ..

  1. réelle est la différence absolue de temps entre la fin et commencer (sans exclure commutations de contexte)
  2. utilisateur est combien le temps est passé alors que le code d'exécution dans l'espace utilisateur
  3. sys est combien de temps est passé tout execting code système (par exemple. les appels système ou tout le reste e à passe le contrôle du code utilisateur au noyau du code)

Une note: tout réel ne représente pas le temps efficace (en raison de l'inclusion du temps aussi où GC en va de CPU pour le laisser à quelque chose d'autre) sys + utilisateur fait.

EDIT

CMS-concurrent-sweep est la phase dans laquelle GC nettoie en fait des objets inutiles (il est fait après la phase de marquage). Dans ce cas, il est en même temps parce que GC travaille en collaboration avec l'application sans prendre le temps et le temps doit être utilisé le temps (peut-être time-start/time-end, pas sûr)

+0

Savez-vous ce que représentent les deux nombres à côté du nom du GC? – ripper234

+0

où parlez-vous exactement? Quels numéros? – Jack

Questions connexes