簡體   English   中英

了解Java的GC日志

[英]Understanding Java's GC logs

我在我的JDK上打開了詳細的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 +用戶和實際時間有什么區別?
  2. “0.023 / 0.024秒”是什么意思?

我認為這只與CPU使用情況有關..

  1. real是結束和開始之間的絕對時間差(不包括上下文切換)
  2. user是在用戶空間中執行代碼所花費的時間
  3. sys是在執行系統代碼時花費了多少時間(例如,系統調用或將控制從用戶代碼移動到內核代碼的所有其他內容)

注意:雖然真實並不代表有效時間(因為還包括GC離開CPU以讓它變成其他東西的時間) sys +用戶

編輯

CMS-concurrent-sweep是GC實際清理無用對象的階段(在標記階段之后完成)。 在這種情況下,它是並發的,因為GC與應用程序一起工作而不會暫停它,時間應該是時間使用(可能是time-start / time-end ,不確定)

根據http://www.sun.com/bigadmin/content/submitted/cms_gc_logs.html ,兩個數字0.023/0.024是CPU /牆壁時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM