文档章节

Java GC系列(4):垃圾回收监视和分析

ForingY
 ForingY
发布于 2017/02/06 17:37
字数 788
阅读 9
收藏 0

在这个Java GC系列教程中,让我们学习用于垃圾回收监视和分析的工具。然后,选用一种工具来监视一个Java示例程序的垃圾回收过程。如果你是一名初学者,你最好仔细阅读该系列教程。你可以从这里(垃圾回收介绍)开始。

Java GC监视和分析工具

下面是一些可用的工具,每个都有自己的优势和缺点。我们可以通过选择正确的工具并分析,来提升应用程序的性能。这篇教程中,我们选用Java VisualVM。

Java VisualVM Naarad GCViewer IBM Pattern Modeling and Analysis Tool for Java Garbage Collector HPjmeter IBM Monitoring and Diagnostic Tools for Java-Garbage Collection and Memory Visualizer Verbose GC Analyzer

Java VisualVM

Java VisualVM使用是免费的,其需要安装Java SE SDK。看一下Java JDK的bin文件夹中(路径:\Java\jdk1.8.0\bin),这里面有很多javac和java工具,jvisualvm就是其中之一。

Java VisualVM能够被用于:

生成并分析堆的内存转储; 在MBeans上观察并操作; 监视垃圾回收; 内存和CPU性能分析;

1、启动VisualVM

jvisualvm位于JDK bin文件夹下,直接点击就可以。 输入图片说明 输入图片说明 输入图片说明

2、安装可视化GC插件

我们需要安装可视化GC插件,以便在Java GC过程中有良好的视觉感受。

输入图片说明

3、监视GC

现在,是时候监视垃圾回收进程了,开启你的Java程序,它将自动被检测到并显示到Java VisualVM界面,左侧“Application”(应用程序)窗口下,“Local”(本地节点)下,所有本地运行的Java程序都会被列出。

输入图片说明

Java VisualVM是一个Java应用程序,因此它也会被列在其中,教程的意图在于使用VisualVM来监视它自己的GC进程。

双击“Local”(本地)下的VisualVM图标。

输入图片说明

现在,程序监控窗口在右侧打开,这有许多不同关于应用程序性能的相关监视指数的tab页,目前为止,我们最感兴趣的是“Visual GC”,点击它。

上面图片显示在Old、Eden、S0和S1上空间利用情况,下图显示了每部分空间的分配和释放情况。它按照指定的刷新率保持持续刷新。

输入图片说明

上面图片所展示的是正常运行程序的情况,当出现内存泄露或者反常的行为时,它会在图表中明确的显示出来。最少我们能理解他是与对象内存分配和垃圾回收相关的事情。随后,通过其他tab页(像“Threads”)和Thread Dump的帮助,我们能够减少这个问题。

在“Monitor”tab页中,我们能够监控并定时展示所有堆内存使用情况图。通过“Perform GC”按钮可以启动垃圾回收进程。

输入图片说明

在“Sampler”tab页中,我们能够启动内存和CPU性能分析,它将显示详细每个实例使用的实时报告,它将帮助我们明确性能问题。

输入图片说明

这篇教程是我们四篇Java垃圾回收系列教程的最后一篇。

本文转载自:http://www.importnew.com/13838.html

ForingY
粉丝 23
博文 272
码字总数 156129
作品 0
杭州
程序员
私信 提问
Java GC系列:Java垃圾回收详解

Java的内存分配与回收全部由JVM垃圾回收进程自动完成。与C语言不同,Java开发者不需要自己编写代码实现垃圾回收。这是Java深受大家欢迎的众多特性之一,能够帮助程序员更好地编写Java程序。 ...

满风
2015/04/10
0
0
JDK的命令行工具系列 (一) jps、jstat

概述 在我们进行故障定位和性能分析时, 可以使用Java Dump(也叫Dump文件)来帮助排查问题, 它记录了JVM运行期间的内存占用和线程执行等情况。其中Heap Dump文件是二进制格式, 它保存了某一时刻...

qingshanli
2018/07/15
0
0
JVM系列第10讲:垃圾回收的几种类型

我们经常会听到许多垃圾回收的术语,例如:Minor GC、Major GC、Young GC、Old GC、Full GC、Stop-The-World 等。但这些 GC 术语到底指的是什么,它们之间的区别到底是什么?今天我们就来详细...

陈树义
2018/12/10
0
0
JVM系列第8讲:JVM 垃圾回收机制

在第 6 讲中我们说到 Java 虚拟机的内存结构,提到了这部分的规范其实是由《Java 虚拟机规范》指定的,每个 Java 虚拟机可能都有不同的实现。其实涉及到 Java 虚拟机的内存,就不得不谈到 Ja...

陈树义
2018/11/21
0
0
JVM系列篇:JVM性能调优的6大步骤,及关键调优参数详解

本系列会持续更新。 一、JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数。 1.Full GC 会对整个堆进行整理,包括Young、Tenured和Perm。Full GC因为需要对整个...

mikechen优知
03/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

一文读懂深度学习:从神经元到BERT

阿里妹导读:自然语言处理领域的殿堂标志 BERT 并非横空出世,背后有它的发展原理。今天,蚂蚁金服财富对话算法团队整理对比了深度学习模型在自然语言处理领域的发展历程。从简易的神经元到当...

阿里云官方博客
23分钟前
2
0
0.03-CentOS安装配置

1、安装 -1.1、虚拟器启动后出现如下图 ① Install CentOS 7 :安装CentOS7 ② Test this media & Install CentOS 7 :测试安装文件并安装CentOS 7 ③ Troubleshooting :修复故障 -1.2、选择...

静以修身2025
25分钟前
1
0
Weblogic 共享库部署

Weblogic 共享库部署 目录 1. 生成共享库 2 1.1. 准备阶段 2 1.2. 打包 3 1.3. 部署共享库 3 2. 生成应用程序 4 3. 部署注意事项 4 生成共享库 我们一般把一些公共配置文件,打成共享库,在部...

internetafei
26分钟前
2
0
boost log库链接问题

1. 使用动态库时,要定义 BOOST_LOG_DYN_LINK 或者 BOOST_ALL_DYN_LINK 否则会出现如下错误: CMakeFiles/IrcChatData.dir/src/main.cpp.o: In function `boost::log::v2s_mt_posix::source......

BeyondWXF
30分钟前
2
0
ETCD数据库备份与还原

1 备份etcd数据 etcdctl backup --data-dir /var/lib/etcd/default.etcd --backup-dir /root/etcdback 2 etcd备份脚本 #!/bin/bashdate_time=`date +%Y%m%d`etcdctl backup --data-dir /......

拜了个拜
41分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部