今天终于自己写一个jvmti来测试一下,原来用的那些全部太慢,写个简单的功能测试一下,编译了半天没过,sun上面教程是solaris的,自己的编译器,参数看不懂,找了半天,用最简单的方法就行了,不需要什么-fpic之类的参数。。。
gcc -shared -o libssmax.so -I$JAVA_HOME/include -I$JAVA_HOME/include/linux ssmax.c
然后java 命令行加上 -agentpath path_to_libssmax.so 启动就好了,或者copy到lib目录用-agentlib:ssmax启动
最简单的,开了一个事件。。。MethodEntry,里面做计数器++这样最简单的事情,服务器开起来基本动不了,汗。。。后来查了一下,MethodEntry貌似是比较恐怖,开了以后jvm调用会多了3倍。。。明天再研究下是什么问题好了。。。
Leave a Reply