系统维护
西瓜肚圆圆
这个作者很懒,什么都没留下…
展开
-
linux下用vim比较文件
用vim比较文件1. 使用vim的比较模式打开两个文件: vim -d file1 file2或 vimdiff file1 file22. 如果已经打开了文件file1,再打开另一个文件file2进行比较: :vert diffsplit file2如果没有用vert命令,diffsplit则会分上下两个窗口。3. 如果已经用split原创 2012-06-15 16:50:34 · 1538 阅读 · 0 评论 -
shell脚本循环判断进程是否存在
#!/bin/sh02 03while true04do05 process=`ps aux | grep mysqld | grep -v grep`;原创 2012-06-15 16:57:40 · 2423 阅读 · 1 评论 -
构建自己的监测器【7】-Java Interactive Profiler 翻译文档
JIP是一个代码剖析工具非常类似于JDK附带的hprof工具。它的特点包括: 1.交互性,允许你在JVM运行过程中随时启动或结束剖析器而hprof是在程序启动时就开启JVM退出时结束。 2.没有本地代码,大部分剖析器都有一些本地组件(native component)因为这些剖析器使用了需要利用本地组件的JVMPI (Java Virtual Machine Profiling Interfa翻译 2012-08-09 22:34:05 · 4007 阅读 · 0 评论 -
构建自己的监测器【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 · 42307 阅读 · 3 评论 -
构建自己的监测器【5】-javassist
在前面的一些例子中,已经用到了javassist的一些功能,这里再补充一些,有些是从网上考来,有些例子自己写写。javassist和ASM很像,我没有很深的接触过ASM,只看过简单的例子,但是已经感觉很复杂了,要和字节码打交道,可不是好玩的事情。javassist和 asm都是动态创建、修改字节码的类库。我感觉主要区别是: asm的性能要好一些。javass原创 2012-07-29 19:45:20 · 3189 阅读 · 0 评论 -
构建自己的监测器【1】-监测工具
监测器(profiler):监测器的目的是什么?监测器主要是为了检测程序主要哪些地方耗费资源,可能包括cpu资源,内存资源等。利用监测器可以分析出方法的耗时,程序所占内存资源。根据监测器分析出的信息,可以进行有针对性的优化。现有的监测方式1. 最简单的方式 System.out.println() 这种方式应该开放最常用最简单的跟踪程序运行情况的方式了。 有一个方法:publ原创 2012-07-29 19:05:15 · 5695 阅读 · 0 评论 -
构建自己的监测器【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 · 10084 阅读 · 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 · 11130 阅读 · 4 评论 -
构建自己的监测器【6】-agentmain方式
在前面的一些例子中,已经用到了jdk5中premain和instrumentation的一些基本用法,给了我们很多惊喜,相当的给力。不过也有一些不方便的地方,由于其必须在命令行指定代理jar,并且代理类必须在main方法前启动。因此,要求开发者在应用前就必须确认代理的处理逻辑和参数内容等等,在有些场合下,这是比较困难的。比如正常的生产环境下,一般不会开启代理功能,但是在发生问题时,我们不希望停止应原创 2012-07-29 21:33:53 · 3990 阅读 · 0 评论