当前位置: 首页 > news >正文

idea本地跑如何看gc日志_怎样在IDEA中查看GC日志

引言

今天在看书的时候,在讲到垃圾收集器与内存分配策略的章节时,文中有如下一段代码:

public class ReferenceCountingGC {

public Object instance = null;

private static final int _1MB = 1024 * 1024;

private byte[] bigSize = new byte[2 * _1MB];

public static void main(String[] args) {

ReferenceCountingGC objA = new ReferenceCountingGC();

ReferenceCountingGC objB = new ReferenceCountingGC();

objA.instance = objB;

objB.instance = objA;

System.gc();

}

}

在之后,书中在给出的运行结果中贴出了完整的垃圾回收结果,如下:

[GC (System.gc()) [PSYoungGen: 6763K->4872K(38400K)] 6763K->4880K(125952K), 0.0293377 secs] [Times: user=0.00 sys=0.00, real=0.03 secs]

[Full GC (System.gc()) [PSYoungGen: 4872K->0K(38400K)] [ParOldGen: 8K->4721K(87552K)] 4880K->4721K(125952K), [Metaspace: 3435K->3435K(1056768K)], 0.0040781 secs] [Times: user=0.00 sys=0.01, real=0.00 secs]

Heap

PSYoungGen total 38400K, used 998K [0x00000000d5b00000, 0x00000000d8580000, 0x0000000100000000)

eden space 33280K, 3% used [0x00000000d5b00000,0x00000000d5bf9b38,0x00000000d7b80000)

from space 5120K, 0% used [0x00000000d7b80000,0x00000000d7b80000,0x00000000d8080000)

to space 5120K, 0% used [0x00000000d8080000,0x00000000d8080000,0x00000000d8580000)

ParOldGen total 87552K, used 4721K [0x0000000081000000, 0x0000000086580000, 0x00000000d5b00000)

object space 87552K, 5% used [0x0000000081000000,0x000000008149c710,0x0000000086580000)

Metaspace used 3447K, capacity 4496K, committed 4864K, reserved 1056768K

class space used 376K, capacity 388K, committed 512K, reserved 1048576K

而System.gc()应该只是用于提醒虚拟机来进行垃圾回收而已,并不会直接输出信息才是,而且这个方法也没有任何返回,是不可能直接被打印输出的,那么这些信息从哪里而来呢?

GC日志与如何在IDEA中查看

在实际敲了一遍代码并且跑了一遍之后,发现也确实如之前所想的一样,是并没有任何输出的。但是在书的后面的部分中提到了GC的日志,于是便在网上查了一下,发现这些信息的确应位于GC的日志中。

接下来又尝试了一下该如何查看GC的日志,我平时所用Java的IDE是IDEA,发现直接在IDE中即可直接查看GC日志,这里将我的做法贴在这里以作参考。

首先是,打开run选项卡中的Edit Configurations。

之后,便是在刚刚打开的Run/Debug Configurations中点击左上角的加号,然后选"Application",然后在左边详细信息中,将Main class设置为想要查看GC日志的类(需要完整的路径,包括其所在的包,如图中的learning_java.book.ReferenceCountingGC),然后在下面的VM options中输入-XX:+PrintGCDetails,最后点击OK保存设置即可。

这时,再到我们刚刚要输出GC日志的类中,运行一遍程序,便可以看到输出的日志信息了。

相关文章:

  • The Managed DirectX Render Loop
  • dqn推荐系统_推荐系统遇上深度学习(十四)--《DRN:A Deep Reinforcement Learning Framework for News Recommendation》...
  • 今天配置了mantis
  • jupiter 依赖_Jupiter——看一眼就能记住的可爱大橘!
  • c# 线向量生成多边形_C#多边形求角——实例说
  • 《疯狂的程序员》序
  • 多元线性回归算法python实现_机器学习算法python实现-线性回归
  • 正确的座机号码格式_简历里的手机号及座机号的标准写法是什么?正确书写才更可能求职成功!...
  • 《走出软件作坊》序
  • python dict key顺序_python的dict中dict.keys()和dict.values()的提取是否遵守某种固定顺序?...
  • find linux 目录深度_linux find 命令查找文件和文件夹
  • 国际商务英语学习[十五]
  • redis统计用户日活量_使用redis统计用户日活、月活(实践版)
  • SerialPort类连接串口
  • labiview ni python_高效全能架构大前端精品教程python学习网站 百度云 百度网盘下载...
  • 【前端学习】-粗谈选择器
  • bearychat的java client
  • chrome扩展demo1-小时钟
  • classpath对获取配置文件的影响
  • Java教程_软件开发基础
  • Laravel核心解读--Facades
  • MySQL-事务管理(基础)
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • SOFAMosn配置模型
  • vuex 笔记整理
  • windows-nginx-https-本地配置
  • XML已死 ?
  • 从伪并行的 Python 多线程说起
  • 动态规划入门(以爬楼梯为例)
  • 记一次删除Git记录中的大文件的过程
  • 将 Measurements 和 Units 应用到物理学
  • 聊聊hikari连接池的leakDetectionThreshold
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 前端面试之闭包
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • #pragma multi_compile #pragma shader_feature
  • (1)(1.13) SiK无线电高级配置(五)
  • (3)Dubbo启动时qos-server can not bind localhost22222错误解决
  • (7)STL算法之交换赋值
  • (八)Flask之app.route装饰器函数的参数
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (三)mysql_MYSQL(三)
  • (十八)三元表达式和列表解析
  • (十一)c52学习之旅-动态数码管
  • (译)计算距离、方位和更多经纬度之间的点
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转载)hibernate缓存
  • .axf 转化 .bin文件 的方法
  • .chm格式文件如何阅读
  • .Net Core缓存组件(MemoryCache)源码解析
  • .Net 高效开发之不可错过的实用工具
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • @基于大模型的旅游路线推荐方案
  • [.NET 即时通信SignalR] 认识SignalR (一)