国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

Instrumentation

2019-11-11 02:54:02
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Instrumentation的功能

java Instrumentation指的是用代理程序來(lái)監(jiān)測(cè)和協(xié)助運(yùn)行在JVM上的應(yīng)用程序,并且這種代理程序是獨(dú)立于應(yīng)用程序之外的,這是Instrumentation功能的最主要特性。 Instrumentation能夠監(jiān)測(cè)和協(xié)助的功能主要包括:

獲取JVM運(yùn)行時(shí)狀態(tài)在運(yùn)行時(shí)動(dòng)態(tài)修改類(lèi)定義

在 Java SE 5+中,可以在一個(gè)普通 Java 類(lèi)(具有main 函數(shù),對(duì)于Tomcat內(nèi)的應(yīng)用,Tomcat自身帶有main函數(shù))運(yùn)行時(shí),通過(guò) -javaagent 參數(shù)指定一個(gè)特定的 jar 文件來(lái)啟動(dòng) Instrumentation 的代理程序。啟動(dòng)代理程序有以下兩種方式。

PRemain方式

main方法啟動(dòng)前啟動(dòng)一個(gè)代理程序.語(yǔ)法:java -javaagent:agent_jar_path[=options] java_app_name 為了實(shí)現(xiàn)代理功能,需要:

代理類(lèi)必須提供一個(gè)public static void premain(String args, Instrumentation inst)或 public static void premain(String args) 方法 舉個(gè)栗子:public class Main { public static void premain(String args, Instrumentation inst) { Manager.instance().initialization(); inst.addTransformer(new ProfTransformer());//這里的ProfTransformer主要用于修改字節(jié)碼 Manager.instance().startupThread(); }}jar包的manifest文件中包含Premain-Class屬性,并且屬性的值為代理類(lèi)全路徑名 舉個(gè)栗子:Manifest-Version: 1.0Archiver-Version: Plexus ArchiverCreated-By: Apache MavenBuilt-By: manlgeBuild-Jdk: 1.7.0_25Premain-Class: com.taobao.profile.Main

agentmain方式

agentmain方式能夠在JVM啟動(dòng)后動(dòng)態(tài)的去修改一些類(lèi)的行為,這一點(diǎn)可以極大地提高調(diào)試效率。 實(shí)現(xiàn)步驟:

代理類(lèi)需要提供public static void agentmain(String args, Instrumentation inst)或public static void agentmain(String args)方法。如果這兩個(gè)方法同時(shí)存在,以前者優(yōu)先。在manifest中指定Agent-Class屬性,值為代理類(lèi)全路徑Attach API,在運(yùn)行時(shí)動(dòng)態(tài)加載一個(gè)代理jar,詳細(xì)方式可以參考這里
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 华亭县| 靖边县| 江油市| 吴江市| 温泉县| 登封市| 日照市| 南投市| 磴口县| 农安县| 安福县| 定南县| 嘉定区| 河津市| 张北县| 兴和县| 南雄市| 阜南县| 清涧县| 高阳县| 资阳市| 满城县| 颍上县| 英山县| 灵石县| 赣州市| 特克斯县| 五家渠市| 金湖县| 碌曲县| 祁连县| 昌邑市| 铜山县| 绍兴县| 宁波市| 东乌珠穆沁旗| 元朗区| 建平县| 荆州市| 吴川市| 马尔康县|