最近一直在看JUC锁的相关资料,因为在项目中经常遇到这个问题,是时候对JUC进行性能分析了。
infoq的这篇文章写的很好,推荐下!
http://www.infoq.com/cn/articles/jucprofiler
jucprofiler工具集成在IBM的MSDK工具包里。
1.下载MSDK 链接:http://www.alphaworks.ibm.com/tech/msdk/download
2.安装
可以参考http://www.alphaworks.ibm.com/tech/msdk/download里的安装方法,很详细,不罗嗦了。
- Unzip MSDKInstall.vX.X.X.zip file in folder {MSDK_HOME}.
- $ cd {MSDK_HOME}
$ java -jar MSDKInstall.jar install
- Setting environment variable "MSDK_HOME" to the installation directory of MultiCore SDK.
- Linux/Unix (bash)
Assume MSDK is installed in /usr/local/MSDK. The following sets up the environment:
export MSDK_HOME=/usr/local/MSDK
export PATH=${PATH}:${MSDK_HOME}/bin
先拿sample里的例子用来练练手。
cd 到sample的class文件目录 cd /home/wuche/MSDK/samples/bin/
/home/wuche/MSDK/bin/msdk.sh -juc on com/ibm/msdk/jucprofiler/example/AllLockContention
出现下图:
最终产生一个bci.trace文件。profiler结束。
4.产生结果
在${MSDK_HOME}/data下可以看到刚刚产生的trace文件
执行${MSDK_HOME}/bin/msdk.sh -post thor-20110707114323.bci.trace wuche1.txt
产生分析结果到wuche1.txt目录下。
分析结果的各项指标请参考文章的链接,列得非常详细。