2013-07-12 59 views
3

我最近閱讀了Jeremy Manson(Google)的博客文章,介紹瞭如何使用更加準確和輕量級的異步採樣分析器。它依賴於熱點JVM中的「AsyncGetCallTrace」未記錄方法來收集線程的堆棧跟蹤。帶JProfiler的輕量級異步採樣分析器(AsyncGetCallTrace)

http://jeremymanson.blogspot.fr/2013/07/lightweight-asynchronous-sampling.html

我到JProfiler的社會問題是:JProfiler的在目前的7.2.3版本使用AsyncGetCallTrace? JProfiler 8.0中的這個功能在工作中嗎?

回答

2

探查器使用的JVM(JVMTI)的工具接口具有一個大型測試工具,可確保每個發行版的兼容性和穩定性。 AsyncGetCallTrace不是該規範的一部分。 GetStackTrace的開銷非常低,以至於通用Profiler無法犧牲支持的API的好處,以避免不受支持的方法所帶來的收益。

+0

事實上,AsyncGetCallTrace僅支持源自open-jdk項目的JVM。像JProfiler這樣的通用工具僅僅依靠它就不是一種選擇。 但我認爲當檢測到正確的JVM時,JProfiler可以支持它作爲選項。這將使它從基於標準JVMTI的解決方案中脫穎而出。在對我們的內存中多線程分析數據庫進行分析時,標準堆棧跟蹤收集正在成爲重要的瓶頸和分析不準確的根源。 –

+1

我已將它添加到我們的問題跟蹤器中,我們將調查哪些平臺可行。 –

+0

謝謝你這樣做Ingo。我希望你們有時間進行調查。閱讀Jeremy Manson在博客文章中的一些評論,看來AsyncGetCallTrace可用於任何平臺的熱點JVM中)。 –