set JAVA_OPTS=-Xms512m -Xmx4096m -XX:PermSize=512m -XX:MaxPermSize=1024m -XX:-UseGCOverheadLimit
【重要】非堆区MaxPermSize最大的大小不能超过最大内存Xmx的1/4
堆设置
-Xms :初始堆大小
-Xmx :最大堆大小
-XX:NewSize=n :设置年轻代大小
-XX:NewRatio=n: 设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
-XX:SurvivorRatio=n :年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5
-XX:MaxPermSize=n :设置持久代大小
收集器设置
-XX:+UseSerialGC :设置串行收集器
-XX:+UseParallelGC :设置并行收集器
-XX:+UseParalledlOldGC :设置并行年老代收集器
-XX:+UseConcMarkSweepGC :设置并发收集器
垃圾回收统计信息
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-Xloggc:filename
并行收集器设置
-XX:ParallelGCThreads=n :设置并行收集器收集时使用的CPU数。并行收集线程数。
-XX:MaxGCPauseMillis=n :设置并行收集最大暂停时间
-XX:GCTimeRatio=n :设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)
并发收集器设置
-XX:+CMSIncrementalMode :设置为增量模式。适用于单CPU情况。
-XX:ParallelGCThreads=n :设置并发收集器年轻代收集方式为并行收集时,使用的CPU数。并行收集线程数。
-Xms
#指设定程序启动时占用内存大小。(堆区配置)
一般来说,启动时占用的内存大点程序会启动得快一点,但是也可能导致机器暂时变慢。
通常为操作系统可用内存的1/64大小即可,但仍需按照实际情况进行分配。
-Xmx
#指设定程序运行期间最大可以占用的内存大小。(堆区配置)
如果程序运行需要占用更多的内存,超出了这个设置的值,就会抛出OutOfMemory异常。
通常为操作系统可用内存的1/4大小。
##通常会将 -Xms 和 —Xmx两个参数的配置相同的值,
其目的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小,
从而提高性能。
##JVM中最大堆大小有三方面的限制:
(1)相关操作系统的数据模型(32-bit 还是 64-bit)限制;
(2)系统的可用虚拟内存限制;
(3)系统可用物理内存限制。
32位系统下,一般限制在1.5~2G,64位操作系统对内存无限制。
-XX:PermSize
#指非堆区初始化内存分配大小。(非堆区配置)
-XX:MaxPermSize
#指对非堆区分配内存的最大上限。(非堆区配置)
网友评论