内容简介:Arthas是Alibaba开源的Java诊断工具,深受开发者喜爱。 Github: https://github.com/alibaba/arthas 文档:https://alibaba.github.io/arthas Arthas 3.1.1版本主要是小幅改进,下面介绍要点: trace命令打印行号...
Arthas
是Alibaba开源的 Java 诊断工具,深受开发者喜爱。
Arthas 3.1.1版本主要是小幅改进,下面介绍要点:
trace命令打印行号
以arthas-demo
为例:
$ trace demo.MathGame primeFactors Press Q or Ctrl+C to abort. Affect(class-cnt:1 , method-cnt:1) cost in 124 ms. `---ts=2019-05-17 14:46:29;thread_name=main;id=1;is_daemon=false;priority=5;TCCL=sun.misc.Launcher$AppClassLoader@3d4eac69 `---[3.543169ms] demo.MathGame:primeFactors() +---[0.038383ms] java.lang.StringBuilder:<init>() #46 +---[min=0.009633ms,max=0.019667ms,total=0.048153ms,count=3] java.lang.StringBuilder:append() #46 +---[0.014657ms] java.lang.StringBuilder:toString() #46 +---[0.026428ms] java.lang.IllegalArgumentException:<init>() #46 `---[0.004545ms] throw:java.lang.IllegalArgumentException() #46
trace命令会打印出栈的行号,对于定位源码位置非常有帮助。
增加mbean命令
通过mbean
命令可以查看JMX对象的信息。
$ mbean java.lang:type=Threading *Count NAME VALUE -------------------------------- ThreadCount 14 TotalStartedThreadCount 17 PeakThreadCount 14 DaemonThreadCount 8
webconsole支持传递ip/port
之前很多小伙伴在自己部署arthas时,想直接指定web console连接的IP和端口。在新版本的web console里,可以在url里指定。
比如访问 http://localhost:8563/?ip=192.168.1.1&port=9998 ,则在页面上显示的是:
jad命令支持动态生成的lambda类
在之前版本里,jad在反编绎lambda动态生成的类时,可能会没有结果,在新版本里做了支持。以下面的demo为例:
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class JadLambdaDemo { public static void main(String[] args) throws Exception { JadLambdaDemo demo = new JadLambdaDemo(); try { demo.testLabmda(new ArrayList<>()); } catch (Throwable e) { e.printStackTrace(); } System.in.read(); } private Map<Object, Object> map = new HashMap<>(); public void testLabmda(List<Object> list) { list.forEach(it -> { map.put(it.getClass(), it); }); } }
jad
反编译结果是:
$ jad JadLambdaDemo ClassLoader: +-sun.misc.Launcher$AppClassLoader@659e0bfd +-sun.misc.Launcher$ExtClassLoader@2a1aa1de Location: /private/tmp/ /* * Decompiled with CFR 0_132. */ import java.io.InputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Consumer; public class JadLambdaDemo { private Map<Object, Object> map = new HashMap<Object, Object>(); public static void main(String[] arrstring) throws Exception { JadLambdaDemo jadLambdaDemo = new JadLambdaDemo(); try { jadLambdaDemo.testLabmda(new ArrayList<Object>()); } catch (Throwable throwable) { throwable.printStackTrace(); } System.in.read(); } public void testLabmda(List<Object> list) { list.forEach(object -> this.map.put(object.getClass(), object)); } }
改进mc命令查找package/class
在3.1.0版本里,新增加了mc
命令,但是很多情况下mc
可能会失败。在新版本里,做了一定的修复。不过mc
命令还是有可能失败????。
如果失败的话,欢迎到github提出issue,同时可以参考这里本地编译然后上传:
支持Windows下中文路径启动
就是arthas可以放在中文目录下面启动了:) 。
修复jobs系统/重定向
在3.1.0版本里,jobs系统可能不工作,在新版本里做了修复,使用参考:
改进自动补全/历史命令匹配
改进了jad
/dump
/options
等命令的自动补全,还有history匹配时,光标会在合适的位置。
总结
感谢所有开发者在Arthas 3.1.1版本里的贡献和支持,特别感谢 @xuzhiyiYoh 和 @kylixs 。欢迎更多的开发者参与到Arthas项目。
Release Note: https://github.com/alibaba/arthas/releases/tag/arthas-all-3.1.1
出处:https://github.com/alibaba/arthas/issues/703
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Inferno 6.2.0 发布,V8 运行时性能小幅改进
- Linux 5.10.9 发布,小幅更新持续优化
- 动态 | Monero第二次算法更新即将到来 预计升级之后难度会小幅回落
- FreeBSD 13.0-RC1 发布:改进 TCP 性能、修复和改进 SCTP
- Lanai-UI 改进后发布,AdminLTE 改进后的脚手架
- 敏捷开发的持续改进
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
MD5 加密
MD5 加密工具
html转js在线工具
html转js在线工具