Arthas 发布 3.5.6 版本:应用排包瘦身不再烦恼
Arthas
是Alibaba开源的Java诊断工具,深受开发者喜爱。
Arthas 最新发布了 3.5.6 版本:
-
支持统计ClassLoader实际使用URL和未使用的URL
-
增加
memory
命令 -
恢复对 enum 类增强支持,过滤掉的类在日志中打印具体原因。
classloader 命令支持统计实际使用URL和未使用的URL
随着应用越来越复杂,依赖的jar包越来越多,我们想对应用做瘦身,但会有很多顾虑。因为不清楚哪些jar包是没被使用的😂。
因此,Arthas在classloader
命令里增加URL使用统计功能,方便排除未使用jar包。
使用--url-stat
参数,则会打印出所有ClassLoader的Used URLs
和Unused URLs
。
$ classloader --url-stat com.taobao.arthas.agent.ArthasClassloader@3c41660, hash:3c41660 Used URLs: file:/Users/admin/.arthas/lib/3.5.6/arthas/arthas-core.jar Unused URLs: sun.misc.Launcher$AppClassLoader@75b84c92, hash:75b84c92 Used URLs: file:/Users/admin/code/java/arthas/math-game/target/math-game.jar file:/Users/admin/.arthas/lib/3.5.6/arthas/arthas-agent.jar Unused URLs: sun.misc.Launcher$ExtClassLoader@7f31245a, hash:7f31245a Used URLs: file:/tmp/jdk1.8/Contents/Home/jre/lib/ext/sunec.jar file:/tmp/jdk1.8/Contents/Home/jre/lib/ext/sunjce_provider.jar file:/tmp/jdk1.8/Contents/Home/jre/lib/ext/localedata.jar Unused URLs: file:/tmp/jdk1.8/Contents/Home/jre/lib/ext/nashorn.jar file:/tmp/jdk1.8/Contents/Home/jre/lib/ext/cldrdata.jar ...
注意,基于JVM目前已加载的所有类统计,不代表Unused URLs可以从应用中删掉。因为可能将来需要从Unused URLs里加载类,或者需要加载resources。
memory命令
-
https://arthas.aliyun.com/doc/memory.html
memory
命令可以查看JVM内存信息。 因为之前使用dashboard
命令查看内存信息时,因为窗口有限,输出可能被截断,因此提供单独的memory
命令。
$ memory Memory used total max usage heap 32M 256M 4096M 0.79% g1_eden_space 11M 68M -1 16.18% g1_old_gen 17M 184M 4096M 0.43% g1_survivor_space 4M 4M -1 100.00% nonheap 35M 39M -1 89.55% codeheap_'non-nmethods' 1M 2M 5M 20.53% metaspace 26M 27M -1 96.88% codeheap_'profiled_nmethods' 4M 4M 117M 3.57% compressed_class_space 2M 3M 1024M 0.29% codeheap_'non-profiled_nmethods' 685K 2496K 120032K 0.57% mapped 0K 0K - 0.00% direct 48M 48M - 100.00%
恢复对 enum 类增强支持,过滤掉的类在日志中打印具体原因
当我们尝试watch java package里的类时:
watch java.util.concurrent.TimeUnit convert
在~/logs/arthas/arthas.log
里会打印具体原因:
2022-03-01 22:31:55 [arthas-command-execute] INFO c.t.arthas.core.advisor.Enhancer -ignore class: java.util.concurrent.TimeUnit, reson: class loaded by Bootstrap Classloader, try to execute `options unsafe true`
如果按提示执行options unsafe true
,则可以成功watch。
总结
-
classloader wiki: https://arthas.aliyun.com/doc/classloader.html
-
memory wiki: https://arthas.aliyun.com/doc/memory.html
-
Release 日志: https://github.com/alibaba/arthas/releases/tag/arthas-all-3.5.6

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
带你掌握Redis数据类型:string和Hash
摘要:Redis中有五大数据类型,分别是String、List、Set、Hash和Zset。 本文分享自华为云社区《Redis的string类型常用命令解析》,作者:灰小猿 。 先问大家一个问题:你知道Java的数据类型有哪些吗?很多小伙伴肯定会直接想到int、byte、string等等~~~但是如果这样回答就错啦! Java中的数据类型包括:基本数据类型和引用数据类型,其中基本数据类型包括:byte、short、int、long、double、float、char、boolean八种,而引用数据类型则是另外三种,分别是类、接口和数组!注意是没有string类型的,这可是面试的一个坑哈! 而在Redis中也是有数据类型的,和Java中有所不同,在Redis中有五大数据类型,分别是String、List、Set、Hash和Zset。而这五种数据类型中的每一个,都对应着很多不同的使用场景。接下来我们就先来学习一下在Redis中操作string和Hash字符串的命令有哪些? String类型命令操作 String类型是在Redis中最常用的数据类型,它也是很多程序员在日常开发中最常使用甚至只...
- 下一篇
PDF.NET SOD 数据开发框架 5.6.7.0 版本发布
PDF.NET SOD 框架5.6.7.0版本发布了,SOD 框架是 PDF.NET 开发框架下面的数据开发框架。 更新内容如下: 优化并更新NUGET库 修复达梦数据库相关BUG 兼容支持人大金仓 源码及下载地址: gitee:https://gitee.com/znlgis/sod github:https://github.com/znlgis/sod
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7设置SWAP分区,小内存服务器的救世主
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7,8上快速安装Gitea,搭建Git服务器
- 2048小游戏-低调大师作品
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能