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

JVM参数配置

JVM参数的三种表示方法

在jvm中,jvm虚拟机参数有以下三种表示方法:

  • 标准参数-)所有的JVM实现都必须实现这些参数的功能,而且向后兼容
  • 非标准参数-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足,且不保证向后兼容;
  • 非标准参数-XX),此类参数各个jvm实现会有所不同(重点掌握部分

注意:这里的参数一律使用大写的X

标准参数 

 标准参数就是java命令行执行加上的参数,例如 java -jar、java -version 、java -help

 -client 和-server 

设置jvm使用client模式,这是一般在pc机器上使用的模式,启动很快,但性能和内存管理效率并不高;多用于桌面应用;

使用server模式,启动速度虽然慢(比client模式慢10%左右),但是性能和内存管理效率很高,适用于服务器

如果没有指定-server或-client,JVM启动的时候会自动检测当前主机是否为服务器,如果是就以server模式启动

64位的JVM只有server模式,所以无法使用-client参数

默认情况下,不同的启动模式,执行GC的方式有所区别,client模式新生代和老年代都是采用串行模式,server模式启动并行模式

-verbose

这是查询GC问题最常用的命令之一,常用于排查GC问题

  • -verbose:gc 输出每次GC的相关情况
  • -verbose:class 输出jvm载入类的相关信息
  • -verbose:jni 输出native方法调用的相关情况

 非标准参数-X

 -X参数,是在标准基础上扩展的参数,在命令行中输入java -X 命令将显示所有可配置的-X参数的配置项

-Xms  和 -Xmx 和 -Xmn 和 -Xss

-Xms设置初始堆内存大小,设定程序启动时占用内存大小,默认物理内存1/64

 -Xms = -XX:InitialHeapSiz

-Xmx 设置最大堆内存大小 ,设定程序运行期间最大可占用的内存大小,如果程序运行需要占用更多的内存,超出了这个设置值,就会抛出OutOfMemory异常,默认物理内存1/4,

-Xmx = -XX:MaxHeapSize

-Xmn设置年轻代大小,增大年轻代会减少老年代大小,官网推荐整堆的3/8

-Xss设置单个线程栈内存,默认1M

非标准参数-XX 

-XX参数分为三大类,分别为:

  • 性能参数:用于JVM的性能调优和内存分配控制
  • 行为参数:用于改变JVM的基础行为,如GC的方式和算法的选择
  • 调试参数:用于监控、打印、输出等jvm参数

非标准参数-XX的使用方式

-XX:+<option> 启用选项

-XX:-<option> 不启用选项

-XX:<option>=<number/string> 给选项设置一个数字或者字符串,可跟单位,例如 32k, 1024m, 2g

性能参数 

参数名称参数描述
-XX:NewRatio=2表示新生代和老年代比例为1:2
-XX:PermSize=64m方法区分配的初始内存
-XX:MaxPermSize=64m方法区所能占用的最大内存(非堆内存)
-XX:SurvivorRatio=8如默认值为8,代表Eden:Survivor0:Survivor1=8:1:1
-XX:PretenureSizeThreshold= size大于该值的对象直接晋升入老年代(慎用)
-XX:MetaspaceSize=size元空间大小,使用本地内存,由操作系统支配

行为参数 

参数名称参数描述
-XX:+UseSerialGC启用串行GC,即采用Serial+Serial Old模式
-XX:+UseParallelGC启用并行GC,即采用Parallel Scavenge+Serial Old收集器组合(-Server模式下的默认组合)
-XX:+UseParNewGC使用ParNew+Serial Old收集器组合
-XX:+UseG1GC使用G1回收器

调试参数 

参数名称参数描述
-XX:+PrintGCDetails打印GC详细信息
-XX:-PrintGC每次GC时打印相关信息
-XX:-PrintGCTimeStamps打印每次GC的时间戳
-XX:-TraceClassLoading跟踪类的加载信息
http://www.lryc.cn/news/364183.html

相关文章:

  • Vue 实现的精彩动画效果
  • JVM类加载机制详解(JDK源码级别)
  • 美国年轻人热衷床上“摆烂”,沃尔玛发掘床上用品新商机!
  • 3168. 候诊室中的最少椅子数
  • C# PaddleOCR 单字识别效果
  • pyopengl 立方体 正投影,透视投影
  • 人工智能任务5-高级算法工程师需要学习哪些课程与掌握哪些能力
  • 服务器上创建搭建gitlab
  • LangChain学习之prompt格式化与解析器使用
  • 基于EasyX的贪吃蛇小游戏 - C语言
  • 使用Docker辅助图像识别程序开发:在Docker中显示GUI、访问GPU、USB相机以及网络
  • Java中常见错误-泛型擦除及桥接方法问题及解决方案
  • Linux 程序守护脚本
  • 跨境电商|Facebook Marketplace怎么做?
  • .gitignore 文件
  • qt中实现多语言功能
  • 数据结构与算法之 leetcode 513. 找树左下角的值 (BFS) 广度优先
  • mysql中的函数
  • Shell正则表达式与文本处理器
  • 双指针法 ( 三数之和 )
  • 感染恶意代码之后怎么办?
  • 【计算机网络】P3 计算机网络协议、接口、服务的概念、区别以及计算机网络提供的三种服务方式
  • 多角度剖析事务和事件的区别
  • 模糊小波神经网络(MATLAB 2018)
  • HTML布局
  • 数据结构:双链表
  • Python3 元组、列表、字典、集合小结
  • 2024会声会影破解免费序列号,激活全新体验!
  • 机器学习18个核心算法模型
  • 平滑值(pinghua)