2015-08-20 37 views
0

通過記錄一個靜態變量,我可以看到我在我的測試運行中調用了我的函數belongsInResults() 14,000次,但JVM Monitor的「調用計數」只讀取了215個。此函數只在一個地方調用。下面是JVM的調用樹報告,belongsInResults()底部:爲什麼JVM Monitor顯示錯誤的調用計數?

Image of call tree report

我剛好調用mergePrefixes,只是一個又一個前設置在我的單元測試斷點,並啓動和停止生產這在那裏分析。

我也很好奇爲什麼「自我時間」不能達到100%。

回答

1

有兩種方法分析器可以工作: - 添加代碼做每一個方法(儀器) - 在固定的時間間隔做一個線程轉儲(採樣)

只有第一個可以提供精確的調用次數,但高得多開銷

+0

這是絕對正確的。在我第一次運行CPU分析器時,我必須選擇一種模式,選擇默認值並忘記。我通過右鍵單擊調用樹來更改它,並獲得了精確的結果,這些結果也可以達到100%。非常感謝。 – Noumenon