2016-04-08 40 views
0

我已經在負載下的JBoss EAP 6.1應用程序服務器上運行了一個Java Flight Recorder,記錄時間爲2分鐘。我啓用了異常計數(Java應用程序=> Java異常=>啓用= true),我對報告的異常數量感到驚訝。Java Flight Recorder中的JVM生存期是否包含異常?

當我查看事件類型爲「Java應用程序/ Java異常」和「事件線程」組的事件=>直方圖視圖時,10個線程每個都有2000多個例外。其中3個有超過3000個例外。

這是報告的創作總數的Throwable或錯誤:

Stack Trace       Sample Count 
java.lang.Throwable.<init>()    128 059 
java.lang.Throwable.<init>(String)  116 107 
java.lang.Throwable.<init>(Throwable)  39 207 
java.lang.Error.<init>()      7 
java.lang.Throwable.<init>(String, Throwable) 2 

所以我想知道如果在2分鐘內我記錄發生的所有這些例外條款,因爲的開始被他們算JVM?

回答

0

「直方圖」選項卡中的「樣本計數」列彙總了相對於字段值的個事件數,在您的情況下,我相信堆棧跟蹤的頂部框架。因此,128 059的數字表示在錄製過程中發生了許多以「java.lang.Throwable.<init>()」頂部幀發出的事件。

這可能不是您要查找的信息。

我建議使用錄製模板啓用「例外/錯誤」,並查看「例外」選項卡,而不是編輯單個事件的設置並使用「直方圖」選項卡。

0

TL; DR:Java異常事件只記彔彔制過程中發生的情況。異常統計事件在JVM生命週期(或其他'JVM全局'時間)期間計數異常。

有兩個不同的數據點,Java Exception和Java Error事件以及Statistics/Throwables事件。 如果您只查看Java異常/錯誤,那麼記錄中的事件就是在那段時間內發生的事件。 Statistics/Throwables事件是定期執行的,可能來自JVM的開頭,或者可能來自JFR引擎的開始,或者來自正在運行的JVM中第一次JFR記錄的開始。將這些值相互比較最有趣。此事件顯示在代碼/例外選項卡頂部的兩個文本字段中。

還要注意的是,異常/錯誤事件發生在構造函數,而不是當它實際上拋出

如果你的程序創建了大量的Java錯誤事件,有一些麻煩,這些重複簿記,所以數字可能是不正確的(這是我們在下一個JMC版本中已經補償的,但在JMC 5.5中沒有補償) 其他Throwable子類將顯示爲異常事件。

相關問題