Sublime Text 是轻量级文本编辑器,用于查看分析 JVM 输出的 GC 日志和线程 dump,不参与 JVM 调优;需配合 JDK 工具链配置参数生成日志,再利用其正则搜索、语法高亮、排序及 Diff 功能提升分析效率。

Sublime Text 本身不运行 Java 应用,也不直接参与 JVM 性能调优、GC 日志分析或线程堆栈采集。它只是一个轻量级文本编辑器,常被开发者用来查看和分析由 JVM 输出的 GC 日志、线程 dump(如 jstack 输出)等文本文件。真正的调优和日志生成需依赖 JDK 工具链与 JVM 参数配置。
如何让 JVM 输出有用的 GC 日志
在启动 Java 应用时,通过添加 JVM 参数开启详细 GC 日志记录,这是后续分析的基础:
-
Java 8 及以前:使用
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.log -
Java 9+(推荐):统一使用
-Xlog:gc*:gc.log:time,tags,level,例如:-Xlog:gc*,gc+heap=debug:gc.log:time,tags - 建议同时加
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=10M避免日志过大
用 Sublime 快速查看和筛选 GC 日志
Sublime 的优势在于快速打开大文件、支持正则高亮和多行搜索:
- 用 Ctrl+H(Cmd+H)→ 勾选 “Regex” 查找关键模式,例如:
GC pause.*Full定位 Full GC;Allocation Failure看触发原因 - 安装插件 Highlighter 或启用内置语法高亮(View → Syntax → Open all with current extension as → Java Properties),提升可读性
- 按 Ctrl+Shift+P → “Sort Lines” 可对时间戳排序,辅助判断 GC 频率趋势
分析线程堆栈(jstack)的关键点
用 jstack 生成后,在 Sublime 中重点关注:
立即学习“Java免费学习笔记(深入)”;
- 搜索
java.lang.Thread.State: BLOCKED找锁竞争 - 查找
WAITING / TIMED_WAITING状态中持续时间长的线程(结合时间戳或上下文) - 比对多个 dump 文件:用 Sublime 的 “Diff” 插件 或分屏对比(View → Layout → Columns: 2),看哪些线程状态长期未变
配合其他工具才真正完成调优
Sublime 是“眼睛”,不是“大脑”。实际调优需结合:
-
jstat 实时观察 GC 频率与堆占用:
jstat -gc1s -
jmap 查看堆对象分布:
jmap -histo或导出堆转储后用 Eclipse MAT 分析 - VisualVM / JProfiler / async-profiler 做 CPU/内存/锁的可视化诊断
- 根据分析结果调整参数:如增大堆(
-Xmx)、切换垃圾收集器(-XX:+UseZGC)、调优新生代比例(-XX:NewRatio)等
基本上就这些。Sublime 不负责分析逻辑,但用好它的文本处理能力,能显著提升你读日志、找线索的效率。










