在路上

 找回密码
 立即注册
在路上 站点首页 学习 查看内容

javOSize:新一代java分析工具

2017-2-9 13:06| 发布者: zhangjf| 查看: 616| 评论: 0

摘要: 介绍 最近看到这么个工具-javOSize .官网地址,去官网看了下.发现介绍很有意思,叫做 the missing sugar for your Java cup.(你的咖啡杯中缺少的那颗糖).于是感受一下这颗糖到底甜不甜 安装 安装非常简单,从这里下 ...
介绍

最近看到这么个工具-javOSize .官网地址,去官网看了下.发现介绍很有意思,叫做 the missing sugar for your Java cup.(你的咖啡杯中缺少的那颗糖).于是感受一下这颗糖到底甜不甜

安装

安装非常简单,从这里下载,其实完成之后就是一个jar包.非常简单,不用配置啥的.

简单使用

使用方法就是从先附加到一个java进程上,在linux,上我直接执行
ps aux|grep java
就能看到了.不废话,得到java进程的pid之后,运行java -jar javosize-1.0.9.jar pidpid就是pid的号了. 然后会看到如下图的界面javOSize:新一代java分析工具 启动页面,表示已经附加成功了.先看看都有啥.执行ls.看到有这么几个命令.我比较单纯,刚开始以为是可执行文件.结果丢人了.看了下官方文档,才知道是目录.进入对应的目录.然后执行ls就能看到对应的信息了.ls简直不能再万能..改目录支持的所有命令通过在对应的目录执行help来查看.个人尝试觉得好的功能有.
javOSize:新一代java分析工具 所有功能目录

动态修改类
进入CLASSES目录,然后通过执行
ls|grep xxx
来找到需要修改的类,然后通过vi 就可以直接编辑.编辑完成后,直接保存就会动态替换.文档里说是支持jdk1.7以上,对1.6的支持估计是不行的.没有测试.
javOSize:新一代java分析工具 修改类demo 无须重启开启jmx
直接挂载之后,执行cd REPOSITORY然后执行就好了.
exec START_JMX_SERVER 6666 拦截任意代码
可以动态添加类似Spring中的aop方法.用于打印一些调用日志,排查线上问题.进入INTERCEPTOR目录.然后通过如下的方法给某个类的某个方法添加拦截器.
create TickServlet begin mypackage.Hello doGet System.out.println("Servlet invoked"); 检测内存泄漏
进入 REPOSITORY 目录,执行exec TOP_FAT_STATIC_VARIABLES 5 com.apache.*会取出某个包下面占用大小最大的5个类.会很方便找到.

自动检测性能问题
PROBLEMS 目录专业解决这种问题.进入目录后.执行ls命令.会看到这样的场景

这里目前只检测了死锁和频繁GC.已经很有用了.至于效果还有待观察.

无需重启开启GC 日志
和开启jmx一样,进入JMX目录后,执行
exec java.lang:type=Memory.setVerbose(true);
就开启了.

来自:http://leaver.me/2015/07/04/javOSize-%E6%96%B0%E4%B8%80%E4%BB%A3java%E5%88%86%E6%9E%90%E5%B7%A5%E5%85%B7/

最新评论

小黑屋|在路上 ( 蜀ICP备15035742号-1 

;

GMT+8, 2025-7-10 00:08

Copyright 2015-2025 djqfx

返回顶部