说明:这篇文章来翻译来自于JavapapersJava 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 垃圾回收的监控和分析的更多相关文章

  1. [译]Java 垃圾回收介绍

    说明:这篇文章来翻译来自于Javapapers 的Java Garbage Collection Introduction 在Java中,对象内存空间的分配与回收是由JVM中的垃圾回收进程自动完成的. ...

  2. [译]GC专家系列2:Java 垃圾回收的监控

    原文链接:http://www.cubrid.org/blog/dev-platform/how-to-monitor-java-garbage-collection/ 这是"成为GC专家系 ...

  3. Java GC专家系列2:Java 垃圾回收的监控

    这是”成为GC专家系列”文章的第二篇.在第一篇理解Java垃圾回收中我们学习了几种不同的GC算法的处理过程,GC的工作方式,新生代与老年代的区别.到目前为止,你应该已经了解了JDK 7中的5种GC类型 ...

  4. [译]Java垃圾回收是如何工作的

    说明:这篇文章来翻译来自于Javapapers 的How Java Garbage Collection Works 这部分教程是为了理解Java垃圾回收的基础以及它是如何工作的.这是垃圾回收系列教程 ...

  5. java 垃圾回收总结(可达性分析 引用分类

    java 垃圾回收总结(1)   以前看过很多次关于垃圾回收相关的文章,都只是看过就忘记了,没有好好的整理一下,发现写文章可以强化自己的记忆. java与C,c++有很大的不同就是java语言开发者不 ...

  6. 如何优化Java垃圾回收-zz

    为什么需要优化GC 或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并不总是需要进行GC优化,但前提是所运行的基于Java的系统,包含了如下参数或 ...

  7. Java垃圾回收介绍(译)

    在Java中,对象内存空间的分配与回收是由JVM中的垃圾回收进程自动完成的.与C语言不同的是,在Java中开发者不需要专门为垃圾回收写代码.这是使Java流行的众多特征之一,也帮助了程序员写出了更好的 ...

  8. 成为JavaGC专家(2)—如何监控Java垃圾回收机制

    什么是GC监控? 垃圾回收收集监控指的是搞清楚JVM如何执行GC的过程,例如,我们可以查明: 1.        何时一个新生代中的对象被移动到老年代时,所花费的时间. 2.       Stop-t ...

  9. 成为JavaGC专家(3)—如何监控Java垃圾回收机制(转载)

    原文:http://www.importnew.com/3146.html 为什么需要优化GC 或者说的更确切一些,对于基于Java的服务,是否有必要优化GC?应该说,对于所有的基于Java的服务,并 ...

随机推荐

  1. Distribution2:Distribution Writer

    Distribution Writer 调用Statement Delivery 存储过程,将Publication的改变同步到Subscriber中.查看Publication Properties ...

  2. 有关Highchart的那些事。。。备份一段(稍后修改)

    $(function () { $('#CurrentFinanceChart').highcharts({ title: { text: '' }, xAxis: { type: 'datetime ...

  3. Linq To Entities 及其相关

    说到Linq,很多人都非常熟悉,我们可以很方便的用它来操纵对象的集合.今天要说的是Linq To Entities及其相关的操作.下面一步一步的来进行.这里我着重强调的是语法上面的一些注意点.所以怎么 ...

  4. Solr搜索基础

    本例我们使用类库和代码均来自: http://www.cnblogs.com/TerryLiang/archive/2011/04/17/2018962.html 使用C#来模拟搜索.索引建立.删除. ...

  5. 如何对抗 WhatsApp「蓝色双勾」-- 3 个方法让你偷偷看讯息

    WhatsApp 强制推出新功能「蓝色双勾 (✔✔)」 ,让对方知道你已经看过讯息.一众用户反应极大,因为以后不能再藉口说未看到讯息而不回覆.究竟以后 WhatsApp 是否真的「更难用」? 幸好还有 ...

  6. erl0006 - erlang 查看进程状态,查看当前系统那些进程比较占资源

    http://lfstar.blog.163.com/blog/static/56378987201341115037437/ 查看哪些进程占用内存最高? > spawn(fun() -> ...

  7. *[topcoder]TaroFriends

    http://community.topcoder.com/stat?c=problem_statement&pm=13005 好题.最暴力是试验2^n种跳法.然后有从结果入手,那么最终的左右 ...

  8. IE下兼容Css+HTML5

    /*! HTML5 Shiv vpre3.6 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed Uncompressed source: h ...

  9. Beego学习笔记——Config

    配置文件解析 这是一个用来解析文件的库,它的设计思路来自于database/sql,目前支持解析的文件格式有ini.json.xml.yaml,可以通过如下方式进行安装: go get github. ...

  10. docker使用Mesos

    https://github.com/PyreneGitHub/mesos_use/tree/master