日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jvm开源_开源JVM Sampling Profiler

發布時間:2023/12/3 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jvm开源_开源JVM Sampling Profiler 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

jvm開源

眾所周知 ,大多數現有的采樣Java Profiler都必須在安全的地方進行堆棧跟蹤收集。 諸如采樣探查器之類的探查器就是這種情況,它使用SUN / Oracle管理代理來收集其堆棧跟蹤。 這種方法的問題在于,由于不是程序中的每個點都不是安全點,因此會引入樣本偏差,還會引入JVM達到安全點所需時間的開銷。

不久前,杰里米·曼森(Jeremy Manson) 公開了一些概念驗證代碼,在該代碼中對AsyncGetCallTrace JVMPI方法進行了調用,從而避免了線程到達安全點以讀取其調用跟蹤的需求。 該代碼在后臺注冊了一個處理程序函數,該函數在發生sigprof時被調用。 因此,它避免了其他采樣分析器遭受的許多分析器精度問題。 使用此方法的缺點是異步回調中的代碼對其具有可怕的限制,例如無法堆分配內存。 概念證明代碼顯示出了很大的獨創性,但作為概念證明,它缺少有用的功能,例如用戶界面或對查看程序運行時正在更新的概要分析數據的支持。

我已經完成了此代碼轉儲,并開始將其轉換為可用的開源項目。 該程序有兩個主要部分。 有一個小型的C ++ jvmti代理,它寫出一個日志文件來描述已附加到該應用程序的配置文件。 然后,Java 8應用程序可以基于此日志呈現/顯示配置文件。 讀寫代碼基于內存映射文件,因此,如果要將日志文件移動到tmpfs文件系統,它也可以用作共享內存IPC系統。 我還添加了一個GUI,不是一個很棒的GUI,而是一個開始。
生成日志文件意味著可以離線或追溯分析配置文件。 例如,您可以從性能測試運行中轉出日志文件,然后如果發現生產中存在回歸,則可以查看歷史差異。 通過將當前堆棧跟蹤復制到非阻塞,多生產者,單使用者循環隊列中,此事件探查器可避免在異步回調中執行的嚴格限制,該隊列預先分配了固定大小的內存塊。 然后,另一個線程將這些堆棧跟蹤信息讀取出來,該線程將寫出日志文件。 另一個線程還需要查找有關諸如方法名稱之類的有用信息,因為JVMTI調用查找方法名稱信息并不安全。

目前,該代碼庫尚未投入生產 -我不完全信任很多錯誤和大量C / C ++代碼。請記住,如果JVMTI代理中存在錯誤,則可能會出現段錯誤您的JVM。 您已被警告! 源代碼位于github上,并且已獲得Apache許可。 我既歡迎代碼貢獻者,也歡迎人們提供任何反饋。 目前一切還處于初期階段,但我堅信公開開放代碼有助于快速提高其質量。

參考: Insightful Logic博客中的JCG合作伙伴 Richard Warburton提供的開源JVM Sampling Profiler 。

翻譯自: https://www.javacodegeeks.com/2014/03/an-open-source-jvm-sampling-profiler.html

jvm開源

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的jvm开源_开源JVM Sampling Profiler的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。