JVM:可视化 JVM 故障处理工具( 三 )
程序执行后可以看到 , 在整个 Java 堆中 , 曲线一直是平滑向上的 。
文章插图
切换到内存标签页 , 查看 Eden 后可以发现 , 整个 Eden 的图形是一个折线:
文章插图
再切换到 Gen, 可以看到整个老年代也是折叠向上的:
文章插图
我们已经在代码里加了 System.gc(), 为什么看起来没生效呢?
因为 System.gc() 是在 fillHeap() 方法中的 , 在 GC 的时候 , 还在作用域中 , 想要正常回收老年代 , 需要将 System.gc() 这段代码转移到 fillHeap() 外面 。
先修改下代码:
public static void main(String[] args) throws InterruptedException {fillHeap(1000);System.gc();// GC 后停顿 3s, 方便观察图像Thread.sleep(3000);}
文章插图
可以看到在最后进程结束的时候 ,Gen 的柱状图已经没有内存占用了 , 内存回收成功 。
3. VisualVMVisualVM(All-in-One Java Troubleshooting Tool)是功能最强大的运行监视和故障处理程序之一 , 曾经在很长一段时间内是 Oracle 官方主力发展的虚拟机故障处理工具 。
VisualVM 同样在 JDK/bin 这个目录下 , 双击 jvisualvm.exe 即可运行 。 在启动之后 , 直接在左侧会显示当前在本机运行的所有虚拟机进程 。
文章插图
VisualVM 基于 NetBeans 平台开发工具 , 所以一开始它就具备了通过插件扩展功能的能力 , 有了插件扩展支持 ,VisualVM 可以做到:
VisualVM 的插件可以在 工具->插件 中联网后直接安装 。
文章插图
文章插图
我这里只安装了两个最常用的 , 一个是 GC 监控的插件 , 还有一个可以动态插入调试程序的插件 。
我这里使用最常用的开发工具 IDEA 启动过程演示一下通过 VisualVM 监控程序 GC。
文章插图
首先我们启动 IDEA, 直到 IDEA 可以正常操作 , 看下 VisualVM 的 GC 监控 。
文章插图
推荐阅读
- Facebook Messenger收集的数据量有多吓人?可视化对比图告诉你
- 数据可视化三节课之二:可视化的使用
- 历时 1 个月,做了 10 个 Python 可视化动图,用心且精美...
- 韩国电动车故障索赔量4年内翻46倍
- 苹果:影响新设备设置的“iCloud账号与登录”故障已解决
- 阿里云|1分钟故障响应 阿里云AIoT联合昆岳互联打造国内首个环保行业工业互联网平台
- 一个奇特故障带来的诡异电脑问题
- 安卓面试必备的JVM虚拟机制详解,看完之后简历上多一个技能
- 刚买的走步机,收到没几天就出现故障,对方拒绝退货
- 数据|南方电网超高压公司成功举办首届数据可视化分析大赛