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

JVM专题之垃圾收集器

JVM参数

3.1.1 标准参数
-version
-help
-server
-cp

3.1.2 -X参数

 非标准参数,也就是在JDK各个版本中可能会变动

```
-Xint     解释执行
-Xcomp    第一次使用就编译成本地代码
-Xmixed   混合模式,JVM自己来决定

3.1.3 -XX参数

> 使用得最多的参数类型
>
> 非标准化参数,相对不稳定,主要用于JVM调优和Debug

```
a.Boolean类型
格式:-XX:[+-]<name>            +或-表示启用或者禁用name属性
比如:-XX:+UseConcMarkSweepGC   表示启用CMS类型的垃圾回收器
     -XX:+UseG1GC              表示启用G1类型的垃圾回收器
b.非Boolean类型
格式:-XX<name>=<value>表示name属性的值是value
比如:-XX:MaxGCPauseMillis=500
```

3.1.4 其他参数

```
-Xms1000M等价于-XX:InitialHeapSize=1000M
-Xmx1000M等价于-XX:MaxHeapSize=1000M
-Xss100等价于-XX:ThreadStackSize=100
```

> 所以这块也相当于是-XX类型的参数

3.1.5 查看参数

> java -XX:+PrintFlagsFinal -version > flags.txt

> 值得注意的是"="表示默认值,":="表示被用户或JVM修改后的值
> 要想查看某个进程具体参数的值,可以使用jinfo,这块后面聊
> 一般要设置参数,可以先查看一下当前参数是什么,然后进行修改

3.1.6 设置参数的常见方式

* 开发工具中设置比如IDEA,eclipse
* 运行jar包的时候:java  -XX:+UseG1GC xxx.jar
* web容器比如tomcat,可以在脚本中的进行设置
* 通过jinfo实时调整某个java进程的参数(参数只有被标记为manageable的flags可以被实时修改)

3.1.7 实践和单位换算


1Byte(字节)=8bit(位)
1KB=1024Byte(字节)
1MB=1024KB
1GB=1024MB
1TB=1024GB
```

```
(1)设置堆内存大小和参数打印
-Xmx100M -Xms100M -XX:+PrintFlagsFinal
(2)查询+PrintFlagsFinal的值
:=true
(3)查询堆内存大小MaxHeapSize
:= 104857600
(4)换算
104857600(Byte)/1024=102400(KB)
102400(KB)/1024=100(MB)
(5)结论
104857600是字节单位
```

3.1.8 常用参数含义

| 参数                                                                                |                                                 含义                                                 |                                                                    说明                                                                    |
| :---------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------: |
| -XX:CICompilerCount=3                                                               |                                            最大并行编译数                                            |                               如果设置大于1,虽然编译速度会提高,但是同样影响系统稳定性,会增加JVM崩溃的可能                               |
| -XX:InitialHeapSize=100M                                                            |                                             初始化堆大小                                             |                                                                简写-Xms100M                                                                |
| -XX:MaxHeapSize=100M                                                                |                                              最大堆大小                                              |                                                                简写-Xms100M                                                                |
| -XX:NewSize=20M                        

http://www.lryc.cn/news/393902.html

相关文章:

  • SSM养老院管理系统-计算机毕业设计源码02221
  • 使用Keil将STM32部分程序放在RAM中运行
  • 【MySQL8.0】 CentOS8.0下安装mysql报错权限问题的记录
  • 在内网互通的服务器中自由跳转与数据管理
  • Arcgis Api 三维聚合支持最新版API
  • 在Conda环境中高效使用Kubernetes:跨平台容器化实践指南
  • scikit-learn超参数调优 (自动寻找模型最佳参数) 方法
  • 零基础STM32单片机编程入门(八)定时器PWM输入实战含源码视频
  • spring cloud gateway客户端websocket断开连接,服务侧连接没有关闭的问题处理
  • 确认下单:购物车页面点击 去结算 按钮发起两个请求trade(显示购物车的商品信息和计算商品的总金额)findUserAddressList
  • 聚类分析方法(一)
  • Midjourney对图片细微调整和下载保存
  • Python文件写入操作
  • FPGA_GTX:简要版
  • 使用mq向队列发送消息流程
  • Git中两个开发分支merge的原理
  • 数字图像处理、机器视觉(计算机视觉)、计算图形学概念
  • Android SurfaceFlinger ——获取显示屏信息(十八)
  • QCustomPlot+ vs2022+ qt
  • Perl 语言开发(五):循环语句
  • 线性系统理论及应用GUI设计及仿真
  • RAG综述汇总
  • 智慧水利的变革之路:如何通过大数据、物联网和人工智能构建高效、智能、可持续的水利管理新模式
  • springcloud-gateway 网关组件中文文档
  • Android Gradle开发与应用Gradle详细使用
  • 软件架构的23个基本原则:构建稳健、可扩展的系统
  • 江苏省生产经营单位安全管理考核(附答案)
  • Kafka第四篇——生产数据总体概括,源码解析分区策略,数据收集器,Sender发送线程,key值
  • 二叉树的链式结构
  • 【STM32】在标准库中使用DMA