文档章节

HPjmeter 分析GC日志

OrangeJoke
 OrangeJoke
发布于 2016/05/27 11:07
字数 446
阅读 250
收藏 0

第一步: 为JVM 添加GC日志输出

-verbosegc   //输出每次垃圾回收的信息
-XX:+PrintGCDetails      //输出更详细的信息
-Xloggc:garbage-collection.vgc    // 输出GC日志文件(:后是文件名,vgc 用于HPjmeter)
-XX:+PrintGCTimeStamps     //输出时间戳信息

第二步:启动JVM

生成的日志大概如此:

Java HotSpot(TM) 64-Bit Server VM (25.77-b03) for linux-amd64 JRE (1.8.0_77-b03), built on Mar 20 2016 22:00:46 by "java_re" with gcc 4.3.0 20080428 (Red Hat 4.3.0-8)
Memory: 4k page, physical 8045732k(1087904k free), swap 8255484k(4703448k free)
CommandLine flags: -XX:InitialHeapSize=128731712 -XX:MaxHeapSize=2059707392 -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC 
0.434: [GC (Allocation Failure) [PSYoungGen: 31744K->3575K(36864K)] 31744K->3583K(121856K), 0.0072076 secs] [Times: user=0.01 sys=0.01, real=0.01 secs] 
0.790: [GC (Allocation Failure) [PSYoungGen: 35319K->4591K(68608K)] 35327K->4671K(153600K), 0.0051550 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] 
1.177: [GC (Allocation Failure) [PSYoungGen: 68079K->5114K(68608K)] 68159K->10934K(153600K), 0.0167498 secs] [Times: user=0.03 sys=0.00, real=0.02 secs] 
1.463: [GC (Allocation Failure) [PSYoungGen: 68602K->5094K(132096K)] 74422K->15569K(217088K), 0.0107074 secs] [Times: user=0.03 sys=0.00, real=0.01 secs] 
1.802: [GC (Allocation Failure) [PSYoungGen: 132070K->5098K(132096K)] 142545K->19891K(217088K), 0.0145482 secs] [Times: user=0.04 sys=0.01, real=0.01 secs] 
1.908: [GC (Metadata GC Threshold) [PSYoungGen: 32048K->7065K(266240K)] 46841K->21866K(351232K), 0.0097685 secs] [Times: user=0.04 sys=0.00, real=0.01 secs] 

从这些信息里你也可以看到JVM 用的哪个收集器等信息

第三步: 分析日志

下载 HPjmeter:HPjmeter ps: 下载最新版,要注册账号之后才能下载

open file:

输入图片说明

从图中你就可以看到 每一次垃圾回收对应的时间,收集的频率等信息。然后进行进一步相关的条优

说明

这里只介绍了简单的步骤,详细信息包括为什么等内容可以参考下面的链接:

Become a Java GC Expert

java option

© 著作权归作者所有

OrangeJoke
粉丝 40
博文 57
码字总数 39192
作品 0
江北
高级程序员
私信 提问
使用HPjmeter分析GC log

1、启动HPjmeter: HPJmeter本身就是一个jar包,可以通过java命令直接启动,就像运行其他jar包形式的java程序一样。 Java–jar%HPJMETER_PATH%HPjmeter.jar 这样,HPJmeter就启动了,但是如果...

闪电
2016/07/16
354
0
Java架构师必懂的GC日志知识

在Java,Android,C#等中,GC是自动的,而在几种前代编程语言(C,C ++)中,程序员必须明确编写代码才能释放对象。 所以,这对于Java,Android和C#应用程序开发人员来说是一个很大的方便。...

cnJason
2017/11/10
0
0
成为JavaGC专家Part II — 如何监控Java垃圾回收机制

英文原文:cubrid,编译:ImportNew- 王晓杰 本文是成为Java GC专家系列文章的第二篇。在第一篇《深入浅出Java垃圾回收机制》中我们学习了不同GC算法的执行过程,GC是如何工作的,什么是新生...

変態L
2013/03/06
144
0
成为JavaGC专家(2)—如何监控Java垃圾回收机制

本文是成为Java GC专家系列文章的第二篇。在第一篇《深入浅出Java垃圾回收机制》中我们学习了不同GC算法的执行过程,GC是如何工作的,什么是新生代和老年代,你应该了解的JDK7中的5种GC类型,...

stefanzhlg
2014/12/05
1K
0
成为JavaGC专家Part II — 如何监控Java垃圾回收机制

本文是成为Java GC专家系列文章的第二篇。在第一篇《深入浅出Java垃圾回收机制》中我们学习了不同GC算法的执行过程,GC是如何工作的,什么是新生代和老年代,你应该了解的JDK7中的5种GC类型,...

ihaolin
2014/04/03
121
0

没有更多内容

加载失败,请刷新页面

加载更多

六、Spring Cloud之配置中心config

前言 前面我们讲了微服务的注册中心、负载均衡、熔断处理、网管服务。接下来我们讲配置中心,为什么要用配置中心呢? 其实我们接触一段时间就可以发现,我们的项目还是非常多的,每个项目都有...

quellanan2
5分钟前
13
0
在Android的EditText视图中允许多行?

如何在Android的EditText视图中允许多行? #1楼 这对我有用 ,实际上这两个属性很重要: inputType和lines 。 此外,您可能需要一个滚动条,下面的代码显示了如何制作一个: <EditText ...

技术盛宴
9分钟前
13
0
分享自己写的JS版日期格式化和解析工具类,绝对好用!

前言 本来想模仿Java里面的SimpleDateFormat()对象的,但是感觉这样用起来不方便,所以还是直接写成单独的方法算了。 原文链接 日期格式化 2.1. 使用说明 formatDate(date, fmt),其中fmt支持...

SuShine
19分钟前
27
0
快递鸟api物流查询接口实现订阅物流轨迹单号查询功能对接调用

背景: 分享一篇关于在电商系统中同步物流轨迹到本地服务器的文章,当前方案使用了快递鸟集成api做为数据来源接口,这个接口是免费使用的,不过提供的功能还是非常强大的,有专门的售后维护团...

程序的小猿
23分钟前
24
0
Day08多态,abstract,接口

1.A:多态的概述:事物存在的多种形态。 B:多态前提:要有继承关系,方法重写和父类引用子类对象。 父类引用子类对象:Animal a = new Cat(); a.eat(); //效果等同于c.eat(); 2.多态中的...

Lao鹰
29分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部