JVM参数说明
转载于https://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html文章
JVM参数说明
-Xms:初始堆大小 默认值=物理内存的1/64,当空余的堆内存小于40%时,JVM就会增大堆直到-Xmx设置值
-Xmx:最大堆大小 默认值=无聊内存的1/4, 当空余堆内存大于70%时,JVM会将堆大小减少直到-Xms设置值
-Xmn:年轻代 整个堆大小=年轻代大小+年老代大小+持久代大小。 增大年轻代后,将会减少年老代大小,此
值对系统性能影响较大。Sun官方推荐配置为整个堆大小的3/8
-XX:NewSize: 年轻代
-XX:MaxNewSize: 年轻代最大值
-XX:PermSize 持久代初始值
-XX:MaxPermSize 持久代最大值
-Xss 每个线程的堆栈大小 JDK5以后每个线程的堆栈大小为1M,之前是256k。 在相同物理内存下,减小这个
值能生成更多的线程,但操作系统对一个进程中的线程数也是有限制的,3000-5000。一般小的应用,如果栈不
是很深,应该128k够用的,大的应用建议使用256k。这个值对性能影响比较大,需先测试
-XX:NewRatio 年轻代(包括Eden和两个Survivor)与年老代的比值 --XX:NewRatio=4表示年轻代与年老代所占
比值为1:4,年轻代占整个堆栈的1/5 。 当Xms=Xmx并设置了Xmn的情况下,该参数可以不设置
-XX:SurvivorRatio Eden区与Survivor区的大小壁纸 设置为8,表示两个Survivor区与一个Eden区的比值为2:8
一个Survivor区占整个年轻代的1/10
-XX:LargePageSizeInBytes 内存页的大小不可设置过大,会影响到perm的大小 一般值为128M
-XX:MaxTenuringThreshold 垃圾最大年龄。如果设为0的话,则年轻代对象不经过Survivor区,直接进入年老
代,对于年老代比较多的应用,则年轻代对象会在Survivor区进行多次复制,这会增加对象在年轻代的存活时间
增加年轻代被回收的概率,该参数只有在串行GC才有效
=========================
<jvm-arg>-Xms2048m</jvm-arg>
<jvm-arg>-Xmx2048m</jvm-arg>
<jvm-arg>-Xmn512m</jvm-arg>
<jvm-arg>-Xss1m</jvm-arg>
<jvm-arg>-XX:PermSize=256M</jvm-arg>
<jvm-arg>-XX:MaxPermSize=256M</jvm-arg>
<jvm-arg>-XX:SurvivorRatio=8</jvm-arg>
<jvm-arg>-XX:MaxTenuringThreshold=15</jvm-arg>
<jvm-arg>-XX:+UseParallelOldGC</jvm-arg>
<jvm-arg>-XX:GCTimeRatio=19</jvm-arg>
<jvm-arg>-XX:+PrintGCDetails</jvm-arg>
<jvm-arg>-XX:+PrintGCTimeStamps</jvm-arg>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?