2009-12-02 69 views
2

我打開我的JDK詳細的GC選項,而現在我看到線,如理解Java的GC日誌

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] 

人照顧確切地告訴我所有的參數有什麼意思?

  1. sys + user和real times有什麼區別?
  2. 「0.023/0.024秒」是什麼意思?
+0

哪個jdk版本?我發現這篇文章適用於JDK5,但輸出看起來不同(他們提到,輸出隨JDK版本而變化)http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html –

+0

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

回答

3

我認爲它只是涉及到CPU使用率..

  1. 真正是時間結束和開始(不排除上下文切換)之間的絕對差
  2. 用戶是多少在執行用戶空間代碼時花費了大量時間
  3. sys是在執行系統代碼(例如系統調用或其他任何其他操作)時花費了多少時間在從移動用戶代碼控制到內核代碼)

的注意事項:雖然真正並不代表有效時間(因爲還包括時間,其中GC從CPU消失它讓別的東西)sys +用戶呢。

編輯

CMS-concurrent-sweep是在GC實際清除無用對象(它的標記階段後進行)的階段。在這種情況下,它是併發的,因爲GC與應用程序一起工作而不暫停它,時間應該是時間使用的(可能time-start/time-end,不確定)

+0

你知道GC名字旁邊的兩個數字代表什麼嗎? – ripper234

+0

你在說什麼呢?哪些數字? – Jack