GC日志打印

GC日志打印

java -jar -Xloggc:./gc-%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCCause -XX: +UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M xxxxxx.jar

%t 当前时间戳

-Xloggc:./gc-%t.log: 将日志记录到当前路径下,命名为gc-时间戳.log,也可以写绝对路径

-XX:+PrintGCDetails: 打印GC详细日志

-XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps: 打印带时间的GC日志

-XX:+PrintGCCause: 打印GC原因

-XX: +UseGCLogFileRotation: 用于控制GC(垃圾收集)日志文件的滚动记录功能。当GC日志文件的内容达到一定的大小或数量时,该功能可以自动滚动到新的日志文件,以避免单个日志文件过大

-XX:NumberOfGCLogFiles=10: 用于指定滚动的GC日志文件的最大数量

-XX:GCLogFileSize=100M: 指定每个GC日志文件的大小限制。

详细的GC日志参考(parallel垃圾收集器):

Java HotSpot(TM) 64-Bit Server VM (25.261-b12) for windows-amd64 JRE (1.8.0_261-b12), built on Jun 18 2020 06:56:32 by "" with unknown MS VC++:1916
Memory: 4k page, physical 33387572k(11533820k free), swap 37205432k(7288752k free)
CommandLine flags: -XX:-BytecodeVerificationLocal -XX:-BytecodeVerificationRemote -XX:GCLogFileSize=104857600 -XX:InitialHeapSize=534201152 -XX:+ManagementServer -XX:MaxHeapSize=8547218432 -XX:NumberOfGCLogFiles=10 -XX:+PrintGC -XX:+PrintGCCause -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:TieredStopAtLevel=1 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseGCLogFileRotation -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC //Allocation Failure:表明本次引起GC的原因是因为在年轻代中没有足够的空间能够存储新的数据了
2024-03-21T16:16:40.747+0800: 1.793: [GC (Allocation Failure) [PSYoungGen: 131072K->10594K(152576K)] 131072K->10682K(500736K), 0.0078576 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
2024-03-21T16:16:40.913+0800: 1.958: [GC (Metadata GC Threshold) [PSYoungGen: 51045K->8678K(152576K)] 51133K->8774K(500736K), 0.0071735 secs] [Times: user=0.13 sys=0.02, real=0.01 secs] 
2024-03-21T16:16:40.920+0800: 1.966: [Full GC (Metadata GC Threshold) [PSYoungGen: 8678K->0K(152576K)] [ParOldGen: 96K->8381K(195072K)] 8774K->8381K(347648K), [Metaspace: 20308K->20303K(1067008K)], 0.0322834 secs] [Times: user=0.13 sys=0.00, real=0.03 secs] 
2024-03-21T16:16:41.442+0800: 2.488: [GC (Allocation Failure) [PSYoungGen: 131072K->10937K(152576K)] 139453K->19326K(347648K), 0.0040354 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
2024-03-21T16:16:42.041+0800: 3.086: [GC (Allocation Failure) [PSYoungGen: 142009K->13765K(215552K)] 150398K->22163K(410624K), 0.0069713 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
2024-03-21T16:16:42.406+0800: 3.451: [GC (Metadata GC Threshold) [PSYoungGen: 78119K->13287K(218112K)] 86517K->21692K(413184K), 0.0066526 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
2024-03-21T16:16:42.412+0800: 3.458: [Full GC (Metadata GC Threshold) [PSYoungGen: 13287K->0K(218112K)] [ParOldGen: 8405K->19134K(305664K)] 21692K->19134K(523776K), [Metaspace: 33971K->33971K(1079296K)], 0.0317375 secs] [Times: user=0.02 sys=0.00, real=0.03 secs] 
2024-03-21T16:16:43.262+0800: 4.308: [GC (Allocation Failure) [PSYoungGen: 196608K->12883K(296448K)] 215742K->32025K(602112K), 0.0082189 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] 
2024-03-21T16:16:43.996+0800: 5.042: [GC (Allocation Failure) [PSYoungGen: 296019K->7883K(308736K)] 315161K->27033K(614400K), 0.0050205 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
2024-03-21T16:16:44.782+0800: 5.828: [GC (Allocation Failure) [PSYoungGen: 300747K->7979K(413184K)] 319897K->27137K(718848K), 0.0053465 secs] [Times: user=0.00 sys=0.00, real=0.00 secs] 
2024-03-21T16:16:47.402+0800: 8.448: [GC (Allocation Failure) [PSYoungGen: 405291K->13382K(413184K)] 424449K->32548K(718848K), 0.0169885 secs] [Times: user=0.01 sys=0.00, real=0.02 secs] 
2024-03-21T16:16:49.102+0800: 10.148: [GC (Allocation Failure) [PSYoungGen: 410694K->16375K(492544K)] 429860K->40963K(798208K), 0.0115215 secs] [Times: user=0.03 sys=0.02, real=0.01 secs] 
2024-03-21T16:16:49.669+0800: 10.715: [GC (Metadata GC Threshold) [PSYoungGen: 244794K->19939K(496128K)] 269381K->47391K(801792K), 0.0108368 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] 
2024-03-21T16:16:49.681+0800: 10.726: [Full GC (Metadata GC Threshold) [PSYoungGen: 19939K->0K(496128K)] [ParOldGen: 27451K->40617K(440320K)] 47391K->40617K(936448K), [Metaspace: 56633K->56633K(1101824K)], 0.1811990 secs] [Times: user=0.42 sys=0.00, real=0.18 secs] 
2024-03-21T16:16:51.139+0800: 12.185: [GC (Allocation Failure) [PSYoungGen: 476160K->13510K(584704K)] 516777K->54135K(1025024K), 0.0088195 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
2024-03-21T16:16:52.318+0800: 13.363: [GC (Allocation Failure) [PSYoungGen: 584390K->22496K(600064K)] 625015K->66950K(1040384K), 0.0124082 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
2024-03-21T16:16:53.152+0800: 14.198: [GC (Allocation Failure) [PSYoungGen: 600032K->26080K(704000K)] 644486K->78800K(1144320K), 0.0139680 secs] [Times: user=0.00 sys=0.02, real=0.02 secs] 
2024-03-21T16:16:54.131+0800: 15.177: [GC (Allocation Failure) [PSYoungGen: 703968K->32754K(710656K)] 756688K->91130K(1150976K), 0.0161611 secs] [Times: user=0.00 sys=0.01, real=0.02 secs] 
2024-03-21T16:19:23.778+0800: 164.824: [GC (Allocation Failure) [PSYoungGen: 710642K->38899K(847872K)] 769018K->114757K(1288192K), 0.0253218 secs] [Times: user=0.09 sys=0.00, real=0.03 secs]

young GC,回收前大小131072K,回收后10594K,152576K是总的容量,花费时间0.0078576秒

[GC (Allocation Failure) [PSYoungGen: 131072K->10594K(152576K)] 131072K->10682K(500736K), 0.0078576 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 

第一次FULL GC,原因是metadata GC threadhold,元空间大小达到阈值,元空间在不设置的情况下,初始大小是21M,花费时间0.032 秒

[Full GC (Metadata GC Threshold) [PSYoungGen: 8678K->0K(152576K)] [ParOldGen: 96K->8381K(195072K)] 8774K->8381K(347648K), [Metaspace: 20308K->20303K(1067008K)], 0.0322834 secs] [Times: user=0.13 sys=0.00, real=0.03 secs] 

第二次FULL GC,由于元空间大小的动态伸缩机制,扩容到33M左右,当达到阈值,又会进行一次FULL GC。第三次原因一样。

[Full GC (Metadata GC Threshold) [PSYoungGen: 13287K->0K(218112K)] [ParOldGen: 8405K->19134K(305664K)] 21692K->19134K(523776K), [Metaspace: 33971K->33971K(1079296K)], 0.0317375 secs] [Times: user=0.02 sys=0.00, real=0.03 secs] 

配置元空间初始化参数大小,可以防止三次FULL GC,因为元空间在所有类加载完成后,大小基本不会发生太大变化。而项目启动后,元空间大小大约在100M左右,所以可以配置-XX:MetaspaceSize=128M,-XX:MaxMetaspaceSize=128m,

再次执行

java -jar -Xloggc:./gc-%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCCause -XX: +UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -XX:MetaspaceSize=128M,-XX:MaxMetaspaceSize=128m xxxxxx.jar

后的gc日志如下

Java HotSpot(TM) 64-Bit Server VM (25.261-b12) for windows-amd64 JRE (1.8.0_261-b12), built on Jun 18 2020 06:56:32 by "" with unknown MS VC++:1916
Memory: 4k page, physical 33387572k(11482256k free), swap 36877024k(6925536k free)
CommandLine flags: -XX:-BytecodeVerificationLocal -XX:-BytecodeVerificationRemote -XX:CompressedClassSpaceSize=260046848 -XX:GCLogFileSize=104857600 -XX:InitialHeapSize=534201152 -XX:+ManagementServer -XX:MaxHeapSize=8547218432 -XX:MaxMetaspaceSize=268435456 -XX:MetaspaceSize=268435456 -XX:NumberOfGCLogFiles=10 -XX:+PrintGC -XX:+PrintGCCause -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:TieredStopAtLevel=1 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseGCLogFileRotation -XX:-UseLargePagesIndividualAllocation -XX:+UseParallelGC 
2024-03-21T16:23:39.842+0800: 1.853: [GC (Allocation Failure) [PSYoungGen: 131072K->10888K(152576K)] 131072K->10977K(500736K), 0.0082953 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] 
2024-03-21T16:23:40.245+0800: 2.257: [GC (Allocation Failure) [PSYoungGen: 141960K->16711K(152576K)] 142049K->16815K(500736K), 0.0111631 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
2024-03-21T16:23:40.837+0800: 2.849: [GC (Allocation Failure) [PSYoungGen: 147783K->18470K(152576K)] 147887K->18590K(500736K), 0.0104231 secs] [Times: user=0.02 sys=0.00, real=0.01 secs] 
2024-03-21T16:23:41.584+0800: 3.595: [GC (Allocation Failure) [PSYoungGen: 149542K->21490K(283648K)] 149662K->23503K(631808K), 0.0138405 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
2024-03-21T16:23:42.595+0800: 4.607: [GC (Allocation Failure) [PSYoungGen: 283634K->21491K(283648K)] 285647K->29735K(631808K), 0.0159962 secs] [Times: user=0.00 sys=0.02, real=0.02 secs] 
2024-03-21T16:23:43.288+0800: 5.300: [GC (Allocation Failure) [PSYoungGen: 283635K->22114K(555008K)] 291879K->30365K(903168K), 0.0105527 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
2024-03-21T16:23:44.632+0800: 6.644: [GC (Allocation Failure) [PSYoungGen: 546402K->14009K(555520K)] 554653K->30838K(903680K), 0.0114409 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
2024-03-21T16:23:46.750+0800: 8.761: [GC (Allocation Failure) [PSYoungGen: 538297K->23742K(1079296K)] 555126K->47877K(1427456K), 0.0145524 secs] [Times: user=0.00 sys=0.00, real=0.01 secs] 
2024-03-21T16:23:49.515+0800: 11.527: [GC (Allocation Failure) [PSYoungGen: 1071806K->31720K(1079808K)] 1095941K->70392K(1427968K), 0.0220429 secs] [Times: user=0.00 sys=0.00, real=0.02 secs] 
2024-03-21T16:23:51.142+0800: 13.154: [GC (Allocation Failure) [PSYoungGen: 1079784K->41445K(1709568K)] 1118456K->91182K(2057728K), 0.0211497 secs] [Times: user=0.13 sys=0.00, real=0.02 secs] 

可以看到所有的FULL GC已经没有了,时间节省上面,大于是 0.03*3 约等于 0.1秒。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/764079.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux之udp/tcp协议

之前我们已经初步了解了端口号! 今天我们首先就要更加深入了解端口号! 在 TCP/IP 协议中 , 用 " 源 IP", " 源端口号 ", " 目的 IP", " 目的端口号 ", " 协议号 " 这样一个五元组来标识一个通信 其…

LeetCode每日一题——x 的平方根

x 的平方根OJ链接&#xff1a;69. x 的平方根 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 思路&#xff1a; 乍一看题目只需要算一个数的平方根&#xff0c;根据我们之前学的C语言我们能很快的想到使用sqrt&#xff0c;pow这类的<math.h>库函数&#xf…

ChatGPT助力:写出引人注目的学术论文

ChatGPT无限次数:点击直达 ChatGPT助力&#xff1a;撰写引人注目的学术论文 在学术领域&#xff0c;撰写引人注目的论文对于展示研究成果和获取认可至关重要。本文将介绍一些关键策略和技巧&#xff0c;帮助您撰写引人注目的学术论文。 选题精准 一篇引人注目的学术论文首先…

redis瘦身版

线程模型 纯内存操作/非阻塞io多路复用/单线程避免多线程频繁上下文切换 基于Reactor模式开发了网络事件处理器&#xff1a;文件事件处理器&#xff0c;单线程的 io多路监听多个socket&#xff0c;据socket事件类型选择对应的处理器&#xff0c;高性能网络通信模型&#xff0c…

企业必备的 Exchange 邮箱管理工具包:STELLAR TOOLKIT FOR EXCHANGE

天津鸿萌科贸发展有限公司是 Stellar 系列软件的授权代理商。 Stellar Toolkit for Exchange 工具包功能特性 将在线和离线EDB转换为PST Stellar Toolkit for Exchange 可以将邮箱从托管 Exchange 和脱机 EDB 导出为 PST 文件格式。该工具允许您根据需要连接单个或多个邮箱。…

操作系统是如何启动的(持续更新中)

以ChCore为例&#xff0c;介绍OS是如何启动的 OS启动时进行硬件初始化工作&#xff0c;并开启页表 进入内核 Bootloader 和 kernel 放在同一个ELF 文件中

【c/c++指针】初学者必看,学好指针的重要性,指针都有哪些应用

指针&#xff0c;在C/C编程中是一个重要且基础的概念。尽管初学者可能会觉得它们有些复杂&#xff0c;但是深入理解和熟练使用指针是每个程序员必须掌握的技能之一。在本文中&#xff0c;我们将探讨学好指针的重要性&#xff0c;以及指针在程序设计中的广泛应用。 1. 内存管理…

vue3实现输入框短信验证码功能---全网始祖

组件功能分析 1.按键删除&#xff0c;清空当前input&#xff0c;并跳转prevInput & 获取焦点,按键delete&#xff0c;清空当前input&#xff0c;并跳转nextInput & 获取焦点。按键Home/End键&#xff0c;焦点跳转first/最后一个input输入框。ArrowLeft/ArrowRight键点击…

SQL语句之VIEW视图和空值

文章目录 一、VIEW视图 1、定义视图 CREATE VIEW 2、删除视图 3、查询视图和更新视图 二、空值 1、判断一个属性是否为空值 2、空值的运算 一、VIEW视图 1、定义视图 CREATE VIEW CREATE VIEW 视图名(列名 1,列名 n) //若省略列名&#xff0c;则该视图由子査询中 SELE…

快速备份softaculous一键安装的网站程序

近日有客户是通过softaculous一键安装的网站程序&#xff0c;只是想要备份其中的某个网站程序&#xff0c;但是由于他使用的Hostease Linux虚拟主机&#xff0c;也了解到cPanel面板上带备份功能&#xff0c;但是该备份功能会将当前主机上的所有网站的文件进行备份&#xff0c;而…

C++中的虚函数和多态

C中的虚函数和多态 虚函数 C中的虚函数是面向对象编程中的一个核心概念&#xff0c;它允许你在派生类中重写基类中的成员函数。虚函数为多态性提供了机制&#xff0c;使得可以通过基类指针或引用调用派生类中重写的函数。这里是关于虚函数的详细解释&#xff1a; 定义虚函数…

图像分类从零开始(1)

尽我所能&#xff0c;总结留给后面的师弟们&#xff01; 1.目标 搭建一个完整的系统&#xff0c;包括图像数据集预处理&#xff0c;训练模型&#xff0c;分类器&#xff0c;优化器&#xff0c;以及结果数据处理。 2.理论 3.实例&#xff08;猫狗分类&#xff09; Gitee代码…

GEE数据集——2020年江苏省30米分辨率的地表水数据集

简介 要确保水资源安全并提高应对极端水文事件的能力&#xff0c;就必须全面了解各种尺度的水动态。然而&#xff0c;对季节性水文变化较大的水体进行监测&#xff0c;尤其是使用 Landsat 4-9 等中等分辨率卫星图像&#xff0c;面临着巨大的挑战。本研究引入了基于光谱混合物分…

CentOS7 防火墙(firewalld)常规操作

1.查看、打开、关闭防火墙 1.1.查看防火墙是否运行 systemctl status firewalld [rootlocalhost /]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor …

3月22日,每日信息差

&#x1f396; 素材来源官方媒体/网络新闻 &#x1f384; 华为云与乐聚签署战略合作协议 &#x1f30d; 我国超重元素研究加速器装置刷新纪录 &#x1f30b; 我国网民规模达10.92亿人&#xff0c;互联网普及率达77.5% &#x1f381; 微软推首批Surface系列AI PC&#xff0c;首度…

C++迈向精通,学习笔记:类与对象

C&#xff1a;类与对象 注意&#xff0c;这是笔记&#xff0c;不是学习手册&#xff01;&#xff01;&#xff01;有可能不适合别人阅读&#xff0c;如果读者有什么问题欢迎在评论区提问&#xff01;&#xff01; 类与对象 不要把类看的多么高深莫测&#xff0c;通过C语言中…

GB/T 35513.2-2017 聚碳酸酯PC模塑和挤出材料检测

聚碳酸酯塑料是一种无味、无臭、无毒、透明的无定形热塑型材料&#xff0c;是分子链中含有碳酸酯的一类高分子化合物的总称。 GB/T 35513.2-2017聚碳酸酯PC模塑和挤出材料测试项目 测试项目 测试标准 熔体体积流动速率 GB/T 3682 拉伸弹性模量 GB/T 1040.2 屈服应力 GB…

基于SSM的土家风景文化管理平台(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的土家风景文化管理平台&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;通过Spri…

使用Barrier对齐ConstraintLayout几个控件的最高的一个

前提就是想让一个控件X&#xff0c;对齐A&#xff0c;B&#xff0c;C等控件最高的位置&#xff0c;直接看图。 看&#xff0c;由于name的一行&#xff0c;或者2行&#xff0c;会导致email行的高度&#xff0c;可能比image块高&#xff0c;也可能比image快矮。 那么&#xff…