[译]Java 垃圾回收的监控和分析
说明:这篇文章来翻译来自于Javapapers 的Java Garbage Collection Monitoring and Analysi
在这个系列的Java垃圾回收教程中,我们将看到可用于垃圾回收监控和分析的工具。然后使用一个工具去监控用于举例的java程序的垃圾回收过程。如果你是一个新人,你最好通读这个系列的教程。你可以从Java垃圾回收的介绍开始。
Java垃圾回收监控和分析的工具
下面是几个可用的工具。它们每一个都有自己的优势和劣势。通过选择合适的工具和使用有组织的方式来分析我们可以提升程序的表现力。在这个教程中我们将使用Java VisualVM
- Java VisualVM
- Naarad
- GCViewwe
- 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可以通过JavaSE SDK的安装中免费获取。看一下你的JDK的安装的可执行二进制文件夹,路径是\Java\jdk1.8.0\bin
。和javac和java工具一起还有其他很多能够使用的工具。jvisualvm
只是他们其中的一个。
Java VisualVM 提供了一个可视化的接口用来展示关于正在运行的java程序的信息。它是一个将很多工具绑定成的工具。像JConsole、jstat、jinfo、jstack、jmap这些工具现在都是Java VisualVM的一部分了。
Java VisualVM能够用于
- 生成和分析堆内存垃圾
- 查看和操作MBeans
- 监控垃圾回收
- 内存和CPU分析
1.运行 VisualVM
jvisual
能够在JDK的安装目录中找到。
2.安装VisualGC 插件
为了有一个更棒的视觉感受关于Java GC 过程,我们需要安装一个Visual GC 插件
3.监控垃圾回收(GC)
现在我们可以监控垃圾回收过程了。开启你的Java程序,然后它可以自动被发现并且被展示在Java VisualVM界面中。在Local
节点的下面的左边的Application
面板中,所有的本地运行的java程序都会被列举出来。
Java VisualVM是一个java程序而且它也会被显示在里面。为了教程的目的,我们将监控VisualVM 程序本身。
双击Local
节点的下面的VisualVM图标。
现在程序的监控面板已经在右边被打开了。那边有不同的标签页去显示和程序相关的不同的监控部分。我们现在的注意力点在Visual GC
,点击它吧,
在上面的图片中,展示了内存区中Old、S0、S1的利用率。在下面的图中,显示了每段智能的分配和回收内存。它以定义好的频率来刷新。
上面的图表示的是一个程序正常的情况。如果存在内存泄露或者其他不正常的情况,它将明显的进行回收操作。我们至少可以知道有一个问题和对象内存的分配和来及回收有关。在其他的标签页像Threads
和Thead DUmp的帮助下,我们可以减少这种问题。
在Monitor
标签页中,我们能够通过一个时间序列图来监控堆内存的利用率。我们能够通过Perform GC
按钮来初始化垃圾回收进程。
在Sampler
标签页中,我们能够开启内存和CPU分析进程,它将详细的展示每个实例的利用率。它可以帮助去明确表现出来的问题。
伴随着这部分教程,我们系列教程已经来到了尾声。
[译]Java 垃圾回收的监控和分析的更多相关文章
- [译]Java 垃圾回收介绍
说明:这篇文章来翻译来自于Javapapers 的Java Garbage Collection Introduction 在Java中,对象内存空间的分配与回收是由JVM中的垃圾回收进程自动完成的. ...
- [译]GC专家系列2:Java 垃圾回收的监控
原文链接:http://www.cubrid.org/blog/dev-platform/how-to-monitor-java-garbage-collection/ 这是"成为GC专家系 ...
- Java GC专家系列2:Java 垃圾回收的监控
这是”成为GC专家系列”文章的第二篇.在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与老年代的区别.到目前为止,你应该已经了解了JDK 7中的5种GC类型 ...
- [译]Java垃圾回收是如何工作的
说明:这篇文章来翻译来自于Javapapers 的How Java Garbage Collection Works 这部分教程是为了理解Java垃圾回收的基础以及它是如何工作的.这是垃圾回收系列教程 ...
- java 垃圾回收总结(可达性分析 引用分类
java 垃圾回收总结(1) 以前看过很多次关于垃圾回收相关的文章,都只是看过就忘记了,没有好好的整理一下,发现写文章可以强化自己的记忆. java与C,c++有很大的不同就是java语言开发者不 ...
- 如何优化Java垃圾回收-zz
为什么需要优化GC 或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并不总是需要进行GC优化,但前提是所运行的基于Java的系统,包含了如下参数或 ...
- Java垃圾回收介绍(译)
在Java中,对象内存空间的分配与回收是由JVM中的垃圾回收进程自动完成的.与C语言不同的是,在Java中开发者不需要专门为垃圾回收写代码.这是使Java流行的众多特征之一,也帮助了程序员写出了更好的 ...
- 成为JavaGC专家(2)—如何监控Java垃圾回收机制
什么是GC监控? 垃圾回收收集监控指的是搞清楚JVM如何执行GC的过程,例如,我们可以查明: 1. 何时一个新生代中的对象被移动到老年代时,所花费的时间. 2. Stop-t ...
- 成为JavaGC专家(3)—如何监控Java垃圾回收机制(转载)
原文:http://www.importnew.com/3146.html 为什么需要优化GC 或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并 ...
随机推荐
- RH253读书笔记(9)-Lab 9 Account Management Methods
Lab 9 Account Management Methods Goal: To build skills with PAM configuration Sequence 1: Track Fail ...
- Python 相机镜头
一哥第一卷感叹,这家奥地利~.这是什么g8事件,近盲目安装3g的OpenCV,结果徒劳. . . 入题.!环境Python2.7 严厉格按照什么步骤.必成功: 所需的软件如下面: VideoCaptu ...
- 【C++ Primer每天刷牙】一间 迭代器
迭代器的介绍 概述 迭代器是一种检查容器内元素并遍历元素的数据类型. 迭代器(iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或所有元素,每一个迭代器对象代表容器中的确定的地址.迭代 ...
- docker搭建基础的tomcat应用
tomcat server是眼下比較流行的开源中间件server,以下介绍怎样使用 docker 来做一个 tomcat 数据库服务.官方的仓里没有标 OFFICIAL 的 tomcat 的镜像,只是 ...
- 新秀翻译(两)——使用Java通用配置模板方法模式
假设你发现你已经非常重码,你可能会考虑使用模板的方法来消除easy重复错误代码.下面是一个示例:以下两类,他完成了几乎相同的功能: 实例化并初始化一个Reader来读取CSV文件. 读取每一行并解析: ...
- C#管理控制IIS7的方法
原文:C#管理控制IIS7的方法 转自 http://www.lob.cn/jq/csyy/7285.shtml 把在找到正确方法前遇到的挫折也拿出来与大家分享,相信不少朋友从iis6到iis7的过渡 ...
- Redis集群环境安装指南
环境 RHLinux-6.4-64-EN, 红帽6.4 64位,英文正式公布版. Redis3.0.0 redis2.x版本号还不支持集群,3.0版本号将会支持,如今3.0版本号还在开发中,如今是be ...
- C++ Primer 学习笔记_56_ 类和数据抽象 --消息处理演示示例
拷贝控制 --消息处理演示样例 说明: 有些类为了做一些工作须要对复制进行控制. 为了给出这种样例,我们将概略定义两个类,这两个类可用于邮件处理应用程序.Message类和 Folder类分别表示电子 ...
- HDU1253 胜利大逃亡 BFS
胜利大逃亡 Time Limit : 4000/2000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submiss ...
- java7 语法糖 之 switch 声明string
Jdk7新switch 恒语句可以string种类. 例如: @Test public void test_1(){ String string = "hello"; switch ...