博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javOSize:新一代java分析工具
阅读量:4106 次
发布时间:2019-05-25

本文共 1187 字,大约阅读时间需要 3 分钟。

javOSize:新一代java分析工具

介绍

最近看到这么个工具-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的号了. 然后会看到如下图的界面

,表示已经附加成功了.先看看都有啥.执行 ls .看到有这么几个命令.我比较单纯,刚开始以为是可执行文件.结果丢人了.看了下官方文档,才知道是目录.进入对应的目录.然后执行 ls 就能看到对应的信息了.ls简直不能再万能..改目录支持的所有命令通过在对应的目录执行 help 来查看.个人尝试觉得好的功能有.

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

    • Concurrency 
      Deadlocked: false
    • Memory 
      High GC (>2%): false

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

  6. 无需重启开启GC 日志

    和开启jmx一样,进入JMX目录后,执行

    exec java.lang:type=Memory.setVerbose(true); 

    就开启了.

更多文档

转载地址:http://fcnsi.baihongyu.com/

你可能感兴趣的文章
Linux 修改MAC地址的四种方法介绍
查看>>
Ubuntu:永久修改MAC地址
查看>>
UDID解决办法
查看>>
”A valid provisioning profile for this executable was not found“解决方案
查看>>
用WinRAR解压7z.001格式的文件
查看>>
如何UIButton添加事件并传递参数
查看>>
关于Ubuntu下apt的一些用法及和yum的比较
查看>>
自定义UITableView的Header
查看>>
Nmap扫描原理与用法
查看>>
Ubuntu下利用系统创建xorg.conf文件
查看>>
ubuntu修改默认启动级别
查看>>
Vmware中装Linux Mint 15 添加 1600x900分辨率
查看>>
如何为Gnome3添加自启动程序
查看>>
Fedora 19 Mate环境安装Gnome3
查看>>
Fedora19启动时“出现无法应用原保存的显示器配置”解决办法
查看>>
景程手动空调面板故障,指示灯失灵修理记录
查看>>
Nginx通过CORS实现跨域
查看>>
Qt5.1.0 MSVC2012(32bit) release静态版编译结果分享
查看>>
Windows7下MySQL5.5.20免安装版的配置
查看>>
打造轻量化的View Controller
查看>>