垃圾收集對應用程式效能影響深遠。配置不當耗盡資源拖慢速度;明智調優反而加速執行。EVTK 分析詳細 GC 日誌,視覺化堆變化、識別模式、自動標註建議,支援 IBM JRE 1.4.2+、WebSphere 即時日誌,可多檔對比、區間放大、篩選、單位切換。
-verbose:gc:標準啟用,效能影響極小。-Xverbosegclog:<檔名> (Java 5+ 首選):指定輸出檔案,功能更豐富。VGC Data 選單勾選顯示欄位,灰顯=日誌無此欄位。啟用 Summary、Tuning Recommendation 獲得完整報告。
同時載入多個 GC 策略日誌(如 gencon 實線、optavgpause 虛線、optthruput 點線),同樣負載下比較堆使用、暫停時間、完成時間。案例中 gencon 最優但非預設,驗證策略切換帶來巨大改善。
滑鼠框選圖表區間,所有摘要、建議即時更新反映該區段。案例:全天候 5% GC 開銷看似良好,放大尖峰時段揭示真實壓力。
篩選特定堆大小、暫停時間範圍。X 軸單位:秒/分/時/日期/GC 編號(Normalize 決定相對/絕對時間)。Y 軸:MB/GB/堆百分比。
Templates 視圖預設 Heap(記憶體評估)、Pauses(效能診斷)模板。自訂組合可匯出為模板重複使用。右鍵主面板 Save 可輸出 JPEG 圖表、HTML 報告、CSV 數據。
View → Preferences → Displayers → Display Colors 調整繪圖配色。
啟用 verbose:gc 長期運行,Line Plot 繪製「收集後已用堆」。無明顯負載增長卻持續上升 = 疑似洩漏,EVTK 自動標註建議。
GC 回收無引用物件,但程式錯誤持有引用(靜態 Map 持續 put、快取無清理、監聽器未移除)導致物件無法回收。
HashMap 持續 put(new Date(), new Leak()),堆急劇上升至 OOM(圖 14)。WeakReference,弱引用清除數大增,堆回歸最小值(清單 4)。EVTK 即時驗證重構成效,確保弱引用確實生效。
同負載下固定 -Xms500m -Xmx500m:平均暫停時間雖增,但總暫停時間大幅下降,gencon 效能提升 13%、optavgpause 15%、optthruput 30%(圖 18)。原因:避免 JVM 反覆調整堆大小的開銷。
Report 分頁顯示 GC Rate(垃圾產生/回收速率)。固定堆案例中 optthruput 速率提升 12%(圖 19)。高速率 = 單位時間完成更多工作 = 效能佳。
物件池減少分配但增加長壽命物件,分代 GC 下反而加重負擔。正確做法:縮小變數作用域、減少實例變數、讓短命物件自然回收。
負載不足時最大暫停 ≈ 最大回應;正常負載平均回應時間 ∝ 吞吐量。optthruput 暫停較長但平均回應可能優於 optavgpause。過載時排隊長度決定回應,吞吐量成關鍵。
EVTK 將晦澀 GC 日誌轉化為直觀視覺化洞察,從洩漏偵測、堆調優到吞吐量評估,提供完整記憶體管理決策支援。善用此工具,讓 GC 從效能負擔轉化為加速引擎。