读懂JVM垃圾收集日志
2024-09-04 11:33:19
JVM垃圾收集搞懂原理很重要,但是连垃圾收集的日志都不懂,这tmd还分析个屁的问题啊,典型的空有理论知识,动手实践为零。本篇就来具体的学习一下JVM中的垃圾收集日志。
第一步,垃圾收集的选项
图1 JVM垃圾收集日志选项
图1中后面标有大拇指的是该图作者的推荐选项。
-XX:+PrintGCDetails参数用于告诉虚拟机在发生垃圾收集行为时打印内存回收日志,并且在进程退出的时候输出当前内存的各区域分配情况。
- GC, Full GC说明了这次垃圾收集的停顿类型,而不是用来区分新生代GC还是老年代GC。如果有"Full",则表示这次GC发生了"Stop-The-World"。
- PSYoungGen, ParOldGen,PSPermGen表示GC发生的区域,这里显示的区域名称与使用的GC收集器密切相关,不同收集器对于不同区域所显示的名称可能不同。
- 接下来"7307K->480K(9216K)"的含义是:GC前该内存区域已使用容量 -> GC后该内存区域已使用容量(该内存区域的总容量)
- "7307K->6624K(19456K)"的含义是:GC前Java堆已使用容量 -> GC后Java堆已使用容量(Java堆总容量) 。
- "0.0072860 secs" 表示该内存区域GC所占用的时间,单位是秒。
- [Times: user=0.01 sys=0.01, real=0.00 secs]:分别表示用户态消耗CPU时间, 内核态消耗CPU时间,操作从开始到结束所经过的墙钟时间。
PS,CPU时间与墙钟时间的区别是:墙钟时间包括各种非运算的等待耗时,例如等待磁盘I/O、等待线程阻塞等;而CPU时间不包括这些耗时。当系统有多cpu或者多核的话,多线程操作会叠加这些CPU时间,所以有时看到user或sys时间超过real时间是完全正常的。
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintReferenceGC
-XX:+PrintGCCause
-XX:+PrintPromotionFailure
最新文章
- jquery更改输入框type为密码框password
- 迷你DVD管理器
- linux+apache url大小写敏感问题
- 2016年省赛G题, Parenthesis
- Oracle数据库—— 存储过程与函数的创建
- Corosync+Pacemaker+DRBD+MySQL 实现高可用(HA)的MySQL集群
- 设计模式之Prototype(c++)
- MYSQL 优化指南
- Unity3d 开发之 ulua 坑的总结
- Eclipse中GIT插件更新工程到之前版本
- centos7内网源站建设
- HTML基础(1)——样式表
- 【strpos】php的strpos的坑,记一次
- 从零开始部署一个 Laravel 站点
- 从fasta中提取或者过滤掉多个序列
- pycharm(Tip of Day)
- Java反射学习三
- Linux ftp命令的使用方法 -- 转
- jQuery实现列表的增加和删除
- 如何在获取celery中的任务执行情况
热门文章
- border:none;和border:0;的区别
- 网页制作教程:td也可以溢出隐藏显示【转】
- zoj 3471 Most Powerful (有向图)最大生成树 状压dp
- Python学习杂记_1_PyCharm使用的一些收获
- AC日记——队列安排 洛谷 P1160
- TopCoder SRM 301 Div2 Problem 1000 CorrectingParenthesization(区间DP)
- Wordpress笔记:背景音乐
- Leetcode | Construct Binary Tree from Inorder and (Preorder or Postorder) Traversal
- Algorithm | Vector
- 转:ospf学习-----SPF最短路径算法