·
1 commit
to master
since this release
Arthas 4.1.5 Release Notes
发布日期: 2026-01-10
本次版本包含 15 个提交,主要新增堆内存分析功能、MCP viewfile 工具、ClassLoader 精确增强等重要特性。
🚀 新特性 (Features)
1. vmtool 新增堆内存分析功能 (#1915, #3122)
感谢 @yuankong11
新增两个强大的堆内存分析 action:
heapAnalyze - 分析堆内存占用
vmtool --action heapAnalyze --classNum 5 --objectNum 3- 从 GC Root 可达对象出发,统计各个类的实例数量与占用字节数
- 输出占用最大的若干对象与类
- 支持
--classNum指定展示的类数量,--objectNum指定展示的对象数量
referenceAnalyze - 分析对象引用链
vmtool --action referenceAnalyze --className java.lang.String --objectNum 5 --backtraceNum 3- 分析某个类的实例对象,输出占用最大的若干对象及其引用回溯链(从对象回溯到 GC Root)
- 支持
--backtraceNum参数指定回溯层数(-1 表示一直回溯到 root,0 表示不输出引用链)
2. watch/trace/stack/tt/monitor 支持 ClassLoader Hash (#3120)
所有增强类命令新增 -c/--classloader 参数,支持指定 ClassLoader 精确增强:
sc -d com.example.Foo
watch -c 3d4eac69 com.example.Foo bar '{params,returnObj}'
trace -c 3d4eac69 com.example.Foo bar
stack -c 3d4eac69 com.example.Foo bar- 解决同名类被多个 classloader 加载时的增强歧义问题
- 可先用
sc -d查看 classloader hash,再用-c指定
3. MCP 新增 viewfile 工具 (#3121)
MCP Server 新增文件查看工具,支持分段读取大文件:
- 支持 cursor/offset 分段读取,避免一次性返回大量内容
- 支持目录白名单配置(环境变量
ARTHAS_MCP_VIEWFILE_ALLOWED_DIRS) - 默认允许目录:arthas-output、
~/logs/
4. AnsiLog 可配置输出流 (#3128)
- AnsiLog 支持自定义输出流配置,不再硬编码使用 System.out
- 便于日志输出的灵活控制和重定向
5. as-package.sh 支持 --fast 模式
打包脚本新增 --fast 参数,支持快速打包模式,提升开发效率。
🐛 Bug 修复 (Bug Fixes)
1. 修复 MCP 禁用时访问 arthas-output 的空指针异常 (#3127)
修复当 MCP 功能禁用时,访问 arthas-output 目录会抛出 NullPointerException 的问题。
📦 依赖更新 (Dependencies)
- 升级 byte-buddy 依赖至 1.18.3 版本
🔧 工程改进 (Engineering)
1. 新增 Telnet 停止泄漏集成测试 (#3125)
- 新增 telnet-stop-leak 测试目录
- 包含自动化测试脚本和 expect 脚本
- 新增 GitHub Actions 工作流支持
2. MCP 集成测试增强
- 新增 profiler 和 viewfile 工具的集成测试
- 新增 ViewFileToolTest 单元测试
3. EnhancerTest 修复与增强
- 修复 EnhancerTest 测试用例
- 新增 ClassLoader hash 增强相关测试