簡體   English   中英

Java Profilers如何在內部工作?

[英]How do Java profilers work, internally?

我正在調查剖析器如何在內部工作。

似乎有一個名為JVMPI的舊API,以及一個基於java.lang.instrument的“新”API。 我有這樣的想法,即分析器檢測所有類的字節碼並插入通過套接字信息調用的鈎子到給定程序的開放點,因此建立與分析器的通信。 這是標准方法嗎? 它們在方法上有很大不同嗎?

謝謝

作為參考,“ JVM TI是在JDK 5.0中引入的.JVM TI取代了Java虛擬機概要分析器接口(JVMPI)和Java虛擬機調試接口(JVMDI)。” 標准分析器jvisualvm廣泛使用API​​,例如執行和監視垃圾收集,如此處所示 Java Management Extensions (JMX)是常見的通信層。

我不是這方面的專家,但似乎JVMPI和JVMTI的工作方式不同。

  • JVMPI似乎通過代理處理JVM在啟用性能分析時發出的“事件”。 似乎事件發射邏輯內置於JVM中。

  • JVMTI似乎可以通過讓代理在加載方法時將字節碼注入方法來工作(用於分析)。

(這是對上述相關規范的簡要介紹。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM