| 参数 | 说明 |
|---|---|
| -XX:+UseParNewGC | 使用ParNew作为垃圾回收器 |
| -XX:HandlePromotionFailure | 设置如果老年代内存<新生代所有对象大小时要不要Full GC,如果没设置就要Fuul GC,设置了就不要Full GC,而是进一步检查。 |
| -Xmx, -Xms, -Xmn, -XX:PermSize, -XX:MaxPermSize | 内存相关参数 |
| -XX:SurvivorRatio | 设置Eden区和S区的比例,如果-XX:SurvivorRatio=8,则Eden区与S区的比例是8:1:1 |
| -XX:ParallelGCThreads | 设置ParNew垃圾回收线程数 |
| -XX:MaxTenuringThreshold | 判断对象为老年代的年龄的参数 |
| -XX:PretenureSizeThreshold | 判断对象为大对象进入老年代的参数 |
| -XX:CMSInitiatingOccupancyFraction | 老年代内存达到多少比例触发CMS垃圾回收 |
| -XX:CMSFullGCsBeforeCompaction | 执行多少次Full GC后执行一次内存碎片整理,默认是0 |
| -XX:+UseConcMarkSweepGC | CMS: Concurrent Mark Sweep;并发标记清理垃圾回收器 |
| -XX:+UseG1GC | 设置使用G1垃圾回收器 |
| -XX:G1HeapRegionSize | 指定Region大小 |
| -XX:G1NewSizePercent | 新生代占用堆内存比例(初始) |
| -XX:G1MaxNewSizePercent | 新生代最大堆内存占比(最大) |
| -XX:MaxGCPauseMillis | 设定G1执行GC的时候可以让系统停顿多长时间 |
| -XX:InitiatingHeapOccupancyPercent | 默认值45%, G1的参数,如果老年代占用的Region超过这个值,此时就会尝试触发新生代+老年代一起混合回收阶段 |
| -XX:G1MixedGCCountTarget | 在一次混合回收过程中,最后一个阶段执行几次,默认是8次 |
| -XX:HeapWastePercent | 默认5%,混合回收时,如果空Region占堆内存的这个参数时停止回收 |
| -XX:MixedGCLiveThresholdPercent | 默认85%,当一个Region存活对象占比85%以下时才回收。如果存活对象过多,复制起来反而更麻烦,不如不回收。 |
| -XX:+PrintGCDetails | 打印详细的gc日志 |
| -XX:+PrintGCTimeStamps | 这个参数可以打印出来每次GC发生的时间 |
| -Xloggc:gc.log | 这个参数可以设置将gc日志写入一个磁盘文件 |
| -Xms | Java堆内存大小;这是JVM启动时堆内存的大小 |
| -Xmx | Java堆内存最大大小;随着程序的运行堆内存可能不够,这里设置了允许扩大的最大内存大小。 |
| -Xmn | 年轻代内存大小; |
| 堆内存 | 年轻代内存+老年代内存 |
| 老年代内存 | 堆内存 -- 年轻代内存 |
| -XX:PermSize | 永久代内存大小 |
| -XX:MaxPermSize | 永久代最大大小 |
| -Xss | 每个线程栈内存大小 |
图解JVM出现的参数
fun. 逗~2024-05-13 20:19
相关推荐
用户094248568031 小时前
第23章:OpenJDK逃逸分析、标量替换与锁优化wuminyu1 小时前
LockStack在虚拟线程Mount和Unmount拷贝过程剖析2601_962071576 小时前
类变量和全局变量的隔离性有什么区别?估值探索者8 小时前
【Python量化系统工程实战 #01】数据存储选型 CSVSQLiteMySQL 对比与 SQLite 实战建库打工仔折腾 AI19 小时前
从 Demo 到生产级 Agent:8 个关键设计机制与 Python 实现拆解用户094248568031 天前
第22章:JIT编译分层——Interpreter、C1、C2与热点探测乌暮1 天前
JVM 原理与实践:从运行时数据区到线上故障排查长河2 天前
Java的GC(垃圾回收)中,标记无用对象的核心方法是可达性分析算法可乐ea2 天前
GitHub Security Lab 开源 Fuzzing Taskflow:让 LLM 智能体自己跑完 C/C++ 模糊测试一条破秋裤2 天前
Linux 线程同步:读写锁