堆大小
1、-Xms 最小堆的大小
当你的虚拟机启动后, 就会分配这么大的堆内存给你。
默认值:物理内存的1/64(<1GB)
2、-Xmx 是最大堆的大小
默认值:物理内存的1/4(<1GB)
当最小堆占满后,会尝试进行GC,如果GC之后还不能得到足够的内存(GC未必会收集到所有当前可用内存),分配新的对象,那么就会扩展堆,如果-Xmx设置的太小,扩展堆就会失败,导致OutOfMemoryError错误提示。
整个堆大小=年轻代大小 + 年老代大小 + 持久代大小.
年轻代
-Xmn 年轻代大小 ,如:-Xmn2g :设置年轻代大小为2G
-XX:NewSize 设置新生代大小
-XX:NewRatio 设置新生代和老年代的比值
如 3,表示新生代:老年代为 1 :3
老年代
值为 = 堆大小 - 年轻代
持久代
-XX:PermSize 设置持久代(perm gen)初始值
默认值: 物理内存的1/64
-XX:MaxPermSize 设置持久代最大值
默认值: 物理内存的1/4
栈大小
-Xss 每个线程的堆栈大小
本文详细介绍了Java虚拟机(JVM)的内存配置参数,包括-Xms和-Xmx设置最小和最大堆内存,以及年轻代、老年代和持久代的内存分配。年轻代的-Xmn、-XX:NewSize和-XX:NewRatio用于控制新生代的大小和比例,而老年代的大小等于总堆减去年轻代。持久代的-XX:PermSize和-XX:MaxPermSize设定其初始和最大值。此外,还提到了每个线程的栈大小参数-Xss。理解这些参数对于优化JVM性能和避免OutOfMemoryError至关重要。
1089

被折叠的 条评论
为什么被折叠?



