我正在調查分析器如何在內部工作。Java分析器如何在內部工作?
似乎有一箇舊的API命名爲JVMPI,以及基於java.lang.instrument
的「新」API。我有這樣的想法,即profiler處理所有類的字節碼,並將通過套接字信息調用的鉤子插入給定程序的開放點,以便與分析器建立通信。這是標準方法嗎?他們在做法上差異很大嗎?
感謝
我正在調查分析器如何在內部工作。Java分析器如何在內部工作?
似乎有一箇舊的API命名爲JVMPI,以及基於java.lang.instrument
的「新」API。我有這樣的想法,即profiler處理所有類的字節碼,並將通過套接字信息調用的鉤子插入給定程序的開放點,以便與分析器建立通信。這是標準方法嗎?他們在做法上差異很大嗎?
感謝
我不是這方面的專家,但看起來JVMPI和JVMTI的工作方式不同。
JVMPI似乎在代理程序處理啓用分析時JVM發出的「事件」。 JVM中內置事件發射邏輯。
JVMTI似乎通過讓代理將字節碼注入到加載的方法中來工作(用於分析)。
(這是從相應規格的簡要讀取,如上面聯繫在一起的。)