网站首页 > 精选教程 正文
javaagent 简介
Javaagent 主要作用在class被加载之前对其加载,插入我们需要添加的字节码。
javaagent是一个简单优雅的java agent,利用java自带的instrument特性+javassist字节码编辑技术,实现了无侵入的方法级性能监控。基于javaagent的日志,你可以使用JQL工具进行分析查询,也可以自己去写分析器,这样可以让你快速定位生产环境的性能瓶颈。
javaagent的使用
1.通过 -javaagent:xxx.jar=name=ty&age=30
我们通过-javaagent来指定我们编写的agent的jar路径及要传给agent的参数(name=ty&age=30),这样在启动的时候这个agent就可以做一些我们想要它做的事了。
javaagent 的简单实例
1. 首先编写java agent类,只需要实现premain这个方法。
public class HelloAgent {
public static void premain(String arg, Instrumentation instrumentation) {
System.err.println("装载成功 方法 premain 参数:" + arg);
}
}
2. Agent 类必须打成jar包,然后里面的META-INF/MAINIFEST.MF 必须包含Premain-Class这个属性。
下面是一个MANIFEST.MF的例子:
Manifest-Version: 1.0
Premain-Class:HelloAgent
Created-By:1.6.0_06
然后把MANIFEST.MF 加入到你的jar包中。
通过在pom.xml 文件中,引入Maven 插件。
3. 编写测试类
public class TestHelloAgent {
public static void main(String[] args) {
System.out.println("TestHelloAgent main 方法");
}
}
在测试Java 项目中,需要设置VM options 启动参数,如下所示:
-javaagent:D:\Github\java-agent-demo\helloagent\target\hello-agent-1.0-SNAPSHOT.jar=name=rickie&id=1
测试结果:
装载成功 方法 premain 参数:name=rickie&id=1
TestHelloAgent main 方法
javaagent.jar 和 普通jar区别:
javaagent 装载时序:
猜你喜欢
- 2024-11-07 JMX带你透视Java应用,实现应用程序的动态实时监控
- 2024-11-07 java应用监控和分析思路 java监控gc
- 2024-11-07 巧用JAVA监控工具2——jvisualvm java jvm 监控
- 2024-11-07 老技术新谈,Java应用监控利器JMX(1)
- 2024-11-07 详解docker容器的资源监控方案 docker容器资源限制
- 2024-11-07 性能诊断利器 JProfiler 快速入门和最佳实践
- 2024-11-07 java监控工具(1) java视频监控
- 2024-11-07 java通过插桩的概念来完成监控系统的设计
- 2024-11-07 高性能、无侵入的 Java 性能监控神器
- 2024-11-07 JAVA JVM常用监控工具 jvm常用的监控和调试工具
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)