jvm2
Java运行时参数
官网:
- jdk8:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
- jdk11:https://docs.oracle.com/en/java/javase/11/tools/java.html#GUID-3B1CE181-CD30-4178-9602-230B800D4FAE
标准参数、-X参数、-XX参数,700多个
java -XX:+PrintFlagsFinal -version | grep manageable # 可以通过jinfo动态修改的参数,非常有限
常用jvm参数:
# 打印设置的XX选项和值 -XX:+PrintCommandLineFlags # 程序运行前打印用户或jvm设置的XX选项 -XX:+PrintFlagsInitial # 打印出所有XX选项的默认值 -XX:+PrintFlagsFinal # 打印出XX选项在运行程序时生效的值 -XX:PrintVMOptions # 打印出jvm参数 # 堆、栈、方法区 ## 栈 -Xss128k # 设置每个线程的栈大小为128k,等价于-XX:ThreadStackSize=128k ## 堆 -Xms1000m # 设置jvm初始堆大小,等价于-XX:InitialHeapSize=1000m -Xmx1000m # 设置jvm最大堆,等价于-XX:MaxHeapSize=1000m -Xmn100m # 设置年轻代大小,等价于-Xx:NewSize=100m,-XX:MaxNewSize=100m,官方推荐设置为堆大小的3/8 -Xx:NewSize=100m # 设置初始年轻代 -XX:MaxNewSize=100m # 设置最大年轻代 -XX:SurvivorRatio=8 # 设置Eden区与一个survivor区的比值,默认为8,需显示设置才生效 , -XX:+UseAdaptiveSizePolicy # 自动选择各区域大小比例,默认开启,自动分配Eden与survivor的比值,要想手动设置的 -XX:NewRatio=2 # 设置老年代与新生代比例,默认是2 -Xx:PretenureSizeThreshold=1024 # 让大于此阈值的对象直接放入老年代,单位字节,只丢Serial、ParNew收集器有效 -XX:MaxTenuringThreshold=15 # 新生代每次minorGC年龄加1,当年龄大于此值时进入老年代,默认值15 -XX:+PrintTenuringDistribution # 让jvm每次minorGC之后都打印出当前使用的survior中对象的年龄分布 -XX:TargetSurvivorRatio # 表示minorGC之后survivor中占用空间的期望比例 ## 方法区 ### 永久代 -XX:PermSize=256m # 设置永久代初始值为256m -XX:MaxPermSize=256 # 设置永久代最大值为256m ### 元空间 -XX:MetaspaceSize # 初始空间大小 -XX:MaxMetaspaceSize # 最大元空间大小,默认没有限制 -XX:+UseCompressedOops # 压缩对象指针 -XX:+UseCompressedClassPointers # 压缩类指针 -XX:CompressedClassSpaceSize # 设置klass metaspace的大小 默认1G # 直接内存 -XX:MaxDirectMemorySize # 指定直接内存容量,若未指定,默认与堆最大值一样 # OOM相关 -XX:+HeapDumpOnOutOfMemoryError # 表示当oom时,把heap转存到文件 -XX:+HeapDumpBeforeFullGC # fullGC前,把heap转存到文件,跟上面的二选一即可,默认都是关闭的 -XX:HeapDumpPath=xxx # 指定heap转存文件的存储路径 -XX:OnOutOfMemoryError=xxx.sh # 指定一个可执行程序或脚本,当OOM发生的时候,去执行 # 垃圾收集器相关 # GC日志相关 # 通过java代码获取jvm参数
分析GC日志
GCEasy在线分析
GCViewer
---
本文来自博客园,作者:Bingmous,转载请注明原文链接:https://www.cnblogs.com/bingmous/p/16823436.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?