- 博客(6)
- 资源 (6)
- 问答 (4)
- 收藏
- 关注
原创 构建自己的监测器【6】-agentmain方式
在前面的一些例子中,已经用到了jdk5中premain和instrumentation的一些基本用法,给了我们很多惊喜,相当的给力。不过也有一些不方便的地方,由于其必须在命令行指定代理jar,并且代理类必须在main方法前启动。因此,要求开发者在应用前就必须确认代理的处理逻辑和参数内容等等,在有些场合下,这是比较困难的。比如正常的生产环境下,一般不会开启代理功能,但是在发生问题时,我们不希望停止应
2012-07-29 21:33:53 3973
原创 构建自己的监测器【5】-javassist
在前面的一些例子中,已经用到了javassist的一些功能,这里再补充一些,有些是从网上考来,有些例子自己写写。javassist和ASM很像,我没有很深的接触过ASM,只看过简单的例子,但是已经感觉很复杂了,要和字节码打交道,可不是好玩的事情。javassist和 asm都是动态创建、修改字节码的类库。我感觉主要区别是: asm的性能要好一些。javass
2012-07-29 19:45:20 3179
原创 构建自己的监测器【4】-java -D参数使用
java中可以传入的一个参数:-D ,它的说明 是这样的: -D= set a system property 设置一个系统参数和值 可以通过下面的代码获取到 java -D 的系统属性参数列表,代码如下:public static void main(String[] args) { printProperties();} public
2012-07-29 19:35:48 10054 1
原创 构建自己的监测器【3】-instrumentation
其实前一节已经看到过instrumentation了,就是在premain方法的参数里:public static void premain(String agentArgs, Instrumentation inst); java.lang.instrument 在jdk5之前的版本中是没有的,它是jdk5之后引入的新特性,这个特定将java的instrument功能从native库中解
2012-07-29 19:13:10 11095 4
原创 构建自己的监测器【2】-javaagent参数使用
javaAgent javaAgent是从JDK1.5及以后引入的,在1.5之前无法使用,也可以叫做java代理。1. 代理 (agent) 是在你的main方法前的一个拦截器 (interceptor),也就是在main方法执行之前,执行agent的代码。agent的代码与你的main方法在同一个JVM中运行,并被同一个system classloader装载,被同一的安
2012-07-29 19:12:04 42150 3
原创 构建自己的监测器【1】-监测工具
监测器(profiler):监测器的目的是什么?监测器主要是为了检测程序主要哪些地方耗费资源,可能包括cpu资源,内存资源等。利用监测器可以分析出方法的耗时,程序所占内存资源。根据监测器分析出的信息,可以进行有针对性的优化。现有的监测方式1. 最简单的方式 System.out.println() 这种方式应该开放最常用最简单的跟踪程序运行情况的方式了。 有一个方法:publ
2012-07-29 19:05:15 5650
Java Interactive Profiler 翻译文档
2012-08-09
部署到docker中的程序,能否再调用docker的api启动另外的docker实例?
2021-05-23
一个rails实例,有点迷惑
2009-06-12
ruby前途如何呢
2009-06-11
请教rails的utf-8 bom编码问题
2009-06-09
TA创建的收藏夹 TA关注的收藏夹
TA关注的人