查看并解析当前jdk的垃圾收集器

概述:复习的时候,学看一下。

命令:

-XX:+PrintCommandLineFlags 

打开idea,配置jvm

把上面命令输入jvm options中即可。

举例代码

这个代码的解析,我上篇文章有写,这个跟本文没有任何关系:

hutool工具的简单使用-CSDN博客

pom文件:

  <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.24</version>
        </dependency>

示例代码:

package org.cyl.test04;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.resource.ClassPathResource;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import cn.hutool.http.HttpUtil;

import java.io.File;
import java.util.List;

public class HutoolExample {

    public static void main(String[] args) {
        // 字符串操作
        String str = "Hutool is a tool for Java.";
        String result = StrUtil.sub(str, 0, 10);
        Console.log("SubString: {}", result);

        // 文件操作
        File file = FileUtil.file("D:\\csdnwork\\test04\\src\\main\\resources\\static\\text.txt");
        FileUtil.writeUtf8String("Hello Hutool", file);

        // 集合操作
        List<String> list1 = CollUtil.newArrayList("Hutool", "Java", "Tool");
        List<String> list2 = CollUtil.newArrayList("Easy", "Effective");
        List<String> newList = (List<String>) CollUtil.addAll(list1, list2);
        Console.log("New List: {}", newList);

        // 加密
        String test = SecureUtil.md5("Hello Hutool");
        Console.log("MD5: {}", test);


        // 加密
        RSA rsa = new RSA();
        String originalText = "Hello Hutool";
        byte[] encryptResult = rsa.encrypt(originalText, KeyType.PublicKey);
        Console.log("Encrypted: {}", encryptResult);

        // 解密
        byte[] decryptResult = rsa.decrypt(encryptResult, KeyType.PrivateKey);
        String decryptedText = new String(decryptResult);
        Console.log("Decrypted: {}", decryptedText);


        // 日期时间处理
        String dateStr = "2022-01-22";
        Console.log("Date: {}", DateUtil.parse(dateStr));

        // 网络操作
        String response = HttpUtil.get("https://www.baidu.com");
        Console.log("HTTP Response: {}", response);

        // 读取Classpath下的资源文件
        ClassPathResource resource = new ClassPathResource("/static/index.html");
        String content = resource.readStr(CharsetUtil.CHARSET_UTF_8);
        Console.log("Resource Content: {}", content);
    }
}

运行查看:

解析结果

我用的是graalvm17

-XX:ConcGCThreads=3 -XX:+EnableJVMCIProduct -XX:G1ConcRefinementThreads=13 -XX:GCDrainStackTargetSize=64 -XX:InitialHeapSize=264819584 -XX:MarkStackSize=4194304 -XX:MaxHeapSize=4237113344 -XX:MinHeapSize=6815736 -XX:+PrintCommandLineFlags -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:ThreadPriorityPolicy=1 -XX:-UnlockExperimentalVMOptions -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseG1GC -XX:-UseLargePagesIndividualAllocation 

  • -XX:ConcGCThreads=3: 设置并发垃圾回收线程数为3。
  • -XX:+EnableJVMCIProduct: 启用JVMCI产品。
  • -XX:G1ConcRefinementThreads=13: 设置G1垃圾回收器的并发细化线程数为13。
  • -XX:GCDrainStackTargetSize=64: 设置GCDrain栈目标大小为64MB。
  • -XX:InitialHeapSize=264819584: 设置初始堆大小为264819584字节(约2.5GB)。
  • -XX:MarkStackSize=4194304: 设置标记栈大小为4194304字节(约4MB)。
  • -XX:MaxHeapSize=4237113344: 设置最大堆大小为4237113344字节(约4GB)。
  • -XX:MinHeapSize=6815736: 设置最小堆大小为6815736字节(约6.5MB)。
  • -XX:+PrintCommandLineFlags: 打印命令行标志。
  • -XX:ReservedCodeCacheSize=251658240: 设置保留代码缓存大小为251658240字节(约240MB)。
  • -XX:+SegmentedCodeCache: 启用分段代码缓存。
  • -XX:ThreadPriorityPolicy=1: 设置线程优先级策略为1。
  • -XX:-UnlockExperimentalVMOptions: 禁用实验性虚拟机选项。
  • -XX:+UseCompressedClassPointers: 使用压缩类指针。
  • -XX:+UseCompressedOops: 使用压缩普通对象指针。
  • -XX:+UseG1GC: 使用G1垃圾回收器。
  • -XX:-UseLargePagesIndividualAllocation: 禁用单独分配大页面。

查看G1垃圾回收器

都知道现在用的是G1收集器,命令。

-XX:+PrintCommandLineFlags -XX:+PrintGCDetails 

打印一下GCDetails.

  1. [0.006s][info ][gc] Using G1:表示正在使用G1垃圾收集器。
  2. [0.007s][info ][gc,init] Version: 17.0.9+11-LTS-jvmci-23.0-b21 (release):表示G1垃圾收集器的初始版本号为17.0.9+11-LTS-jvmci-23.0-b21。
  3. [0.007s][info ][gc,init] CPUs: 16 total, 16 available:表示总共有16个CPU核心可用。
  4. [0.007s][info ][gc,init] Memory: 16163M:表示JVM的总内存为16163兆字节(MB)。
  5. [0.007s][info ][gc,init] Large Page Support: Disabled:表示不支持大页(Large Page)。
  6. [0.007s][info ][gc,init] NUMA Support: Disabled:表示不支持NUMA(Non-Uniform Memory Access,非一致内存访问)。
  7. [0.007s][info ][gc,init] Compressed Oops: Enabled (Zero based):表示启用了压缩对象指针(Compressed Object Pointer),并且是基于零的索引。
  8. [0.007s][info ][gc,init] Heap Region Size: 2M:表示垃圾回收的一块区域的大小为2兆字节(MB)。
  9. [0.007s][info ][gc,init] Heap Min Capacity: 8M:表示堆的最小容量为8兆字节(MB)。
  10. [0.007s][info ][gc,init] Heap Initial Capacity: 254M:表示堆的初始容量为254兆字节(MB)。
  11. [0.007s][info ][gc,init] Heap Max Capacity: 4042M:表示堆的最大容量为4042兆字节(MB)。
  12. [0.007s][info ][gc,init] Pre-touch: Disabled:表示禁用预触摸(Pre-touch)。
  13. [0.007s][info ][gc,init] Parallel Workers: 13:表示并行工作线程的数量为13。
  14. [0.007s][info ][gc,init] Concurrent Workers: 3:表示并发工作线程的数量为3。
  15. [0.007s][info ][gc,init] Concurrent Refinement Workers: 13:表示并发整理工作线程的数量为13。
  16. [0.007s][info ][gc,init] Periodic GC: Disabled:表示禁用周期性垃圾收集(Periodic Garbage Collection)。
  17. [0.015s][info ][gc,metaspace] CDS archive(s) mapped at: [0x0000018e47000000-0x0000018e47bd0000-0x0000018e47bd0000), size 12386304, SharedBaseAddress: 0x0000018e47000000, ArchiveRelocationMode: 1.:表示CDS归档文件映射在地址范围[0x0000018e47000000-0x0000018e47bd0000-0x0000018e47bd0000),大小为12386304字节,共享基地址为0x0000018e47000000,归档重定位模式为1。
  18. [0.015s][info ][gc,metaspace] Compressed class space mapped at: 0x0000018e48000000-0x0000018e88000000, reserved size: 1073741824:表示压缩类空间映射在地址范围[0x0000018e48000000-0x0000018e88000000),保留大小为1GB。
  19. [0.015s][info ][gc,metaspace] Narrow klass base: 0x0000018e47000000, Narrow klass shift: 0, Narrow klass range: 0x100000000:表示窄类(Narrow Class)的基址为0x0000018e47000000,移位量为0,范围为从0x100000000到最大值。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch 常用信息

简述 本文针对 Elasticsearch&#xff08;简称ES&#xff09;集群6.x版本出现故障时&#xff0c;可通过提供的命令进行排查。 1、集群健康状态 集群健康状态状态说明red不是所有的主要分片都可用。表示该集群中存在不可用的主分片。可以理解为某个或者某几个索引存在主分片丢失…

C#,入门教程(31)——预处理指令的基础知识与使用方法

上一篇&#xff1a; C#&#xff0c;入门教程(30)——扎好程序的笼子&#xff0c;错误处理 try catchhttps://blog.csdn.net/beijinghorn/article/details/124182386 Visual Studio、C#编译器以及C#语法所支持的预处理指令&#xff0c;绝对是天才设计。 编译程序的时候会发现&am…

AI搜索引擎Perplexity来了,谷歌等老牌搜索引擎或许会有新的威胁?

Perplexity AI 是一家 AI 搜索初创公司&#xff0c;它通过结合内容索引技术和大型语言模型的推理能力&#xff0c;提供更便捷和高效的搜索体验。另外&#xff0c;最近很火的小兔子Rabbit R1硬件AI设备中的搜索功能正是这家公司的杰作。在短短一年半的时间里&#xff0c;一个企业…

Qt6入门教程 10:菜单栏、工具栏和状态栏

目录 一.菜单栏 1.Qt Designer 1.1添加菜单和菜单项 1.2添加二级菜单 1.3给菜单和菜单项添加图标 1.4给菜单项添加功能 2.纯手写 二.工具栏 1.Qt Designer 1.1添加工具栏按钮 1.2工具栏的几个重要属性 2.纯手写 三.状态栏 1.Qt Designer 2.纯手写 用Qt Creator新…

Elasticsearch分布式一致性原理剖析(二)-Meta篇

Elasticsearch分布式一致性原理剖析(二)-Meta篇 - 知乎 本文首发于云栖社区(Elasticsearch分布式一致性原理剖析(二)-Meta篇-博客-云栖社区-阿里云 )&#xff0c;由原作者转载。 前言 “Elasticsearch分布式一致性原理剖析”系列将会对Elasticsearch的分布式一致性原理进行…

DAY07_SpringBoot—用法整合MyBatis

目录 1 SpringBoot 用法1.1 环境切换1.1.1 业务需求1.1.2 多环境编辑 1.2 热部署1.2.1 需求说明1.2.2 引入jar包1.2.3 配置IDEA环境 2 SpringBoot整合Mybatis2.1 导入数据库2.2 创建SpringBoot项目2.2.1 创建项目2.2.2 生成POM.xml文件如下2.2.3 Mavenjar包作用范围2.2.4 数据源…

【JavaWeb】日程管理系统 项目搭建 第二期

文章目录 一、数据库准备二、导入依赖 与 JDBC工具类三、pojo包处理四、daodao包工具类 五、service六、controllerservlet 基类 反射 七、加密工具类 MD5八、页面文件九、业务代码9.1 注册业务处理9.2 登录业务处理 总结 一、数据库准备 创建数据库&#xff1a; SET NAMES …

python-自动篇-办公-用Excel画画

文章目录 代码所遇问题ModuleNotFoundError: No module named xlsxwriterFileNotFoundError: [Errno 2] No such file or directory: 111.jpg 效果附件图片excel 代码 # coding: utf-8from PIL import Image from xlsxwriter.workbook import Workbookclass ExcelPicture(obje…

风二西CTF流量题大集合-刷题笔记|NSSCTF流量题(2)

21.[SUCTF 2018 招新赛]follow me SUCTF{password_is_not_weak} 22.[MoeCTF 2022]usb moectf{Learned_a6ou7_USB_trffic} 23.[黑盾杯 2020]Blue flag{Gre4t_j0B_ON_This_Blue_sh4rk} 24.[蓝帽杯 2022 初赛]domainhacker2 提交发现&#xff0c;07ab403ab740c1540c378b0f5aaa4…

vue(vue2)使用svg格式图标

先安装插件 配置svg文件夹&#xff0c;新建icons文件&#xff0c;svg文件夹放svg后缀文件 index.js文件中的配置 import Vue from "vue" import svgIcon from "/common/iconSvg/index.vue"Vue.component(svg-icon,svgIcon) //挂载全局组件//下面…

深入浅出AI落地应用分析:AI音乐生成之「Suno.ai」

接下来会每周集中体验一些通用或者垂直的AI落地应用&#xff0c;主要以一些全球或者国外国内排行较前的产品为研究对象&#xff0c;「AI 产品榜&#xff1a; aicpb.com」以专题的方式在博客进行分享。 本节主要介绍和体验AI音乐生成应用产品Suno AI&#xff0c;Suno来自目前最…

【 CSS 】定位

不要因为小小的失败而放弃大大的梦想&#xff0c;每一次坚持都是通向成功的一步。- 马克吐温 1. 定位 1.1 为何使用定位 我们先来看一个效果&#xff0c;同时思考一下用标准流或浮动能否实现类似的效果&#xff1f; 场景1: 某个元素可以自由的在一个盒子内移动位置&#xff0c…

【MySQL数据库】专栏文章索引

为了方便 快速定位 和 便于文章间的相互引用等 作为一个快速准确的导航工具 MySQL数据库 &#xff08;一&#xff09;.CentOS 7 安装配置MySQL

基于神经网络的电力系统的负荷预测

一、背景介绍&#xff1a; 电力系统负荷预测是生产部门的重要工作之一&#xff0c;通过准确的负荷预测&#xff0c;可以经济合理地安排机组的启停、减少旋转备用容量、合理安排检修计划、降低发电成本和提高经济效益。负荷预测按预测的时间可以分为长期、中期和短期负荷预测。…

win10系统 pdf 文件无法正常预览

网上也看了不少办法&#xff0c;修改注册表什么的&#xff0c;太麻烦了&#xff0c;尝试了一下下载Adobe Acrobat Reader&#xff0c;安装后就可以成功预览显示啦&#xff01;对&#xff0c;就是这么简单&#xff01;Adobe Acrobat Reader下载链接&#xff1a;link

【每日一题】2.LeetCode——删除有序数组中的重复项

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有限&#xff0c;欢迎各位大佬指点&…

性能优化-OpenCL运行时API介绍

「发表于知乎专栏《移动端算法优化》」 本文首先给出 OpenCL 运行时 API 的整体编程流程图&#xff0c;然后针对每一步介绍使用的运行时 API&#xff0c;讲解 API 参数&#xff0c;并给出编程运行实例。总结运行时 API 使用的注意事项。最后展示基于 OpenCL 的图像转置代码。在…

CSS 蜡烛效果

<template><view class="holder"><!-- 身子 --><view class="candle"><!-- 光源 --><view class="blinking-glow"></view><!-- 火星子 --><view class="thread"></view>…

Unity 建造者模式(实例详解)

文章目录 说明实例1&#xff1a;构建游戏角色实例2&#xff1a;构建游戏场景实例3&#xff1a;构建UI界面 说明 在Unity中&#xff0c;建造者模式&#xff08;Builder Pattern&#xff09;是一种创建型设计模式&#xff0c;它通过分离对象构建过程的复杂性&#xff0c;允许您以…

JAVA 学习 面试(二)多线程篇

Java多线程 线程池 线程池原理 创建方式&#xff1a;newFixedThreadPool (固定数目线程的线程池)、newCachedThreadPool(可缓存线程的线程池)、newSingleThreadExecutor(单线程的线程池)、newScheduledThreadPool(定时及周期执行的线程池)、new ThreadPoolExecutor() &#x…