1.jvm的内存参数说明:
-Xms: jvm启动时申请的初始Heap值,默认为操作系统物理内存的1/64但是小于1G;(8G内存的机器为:128M);默认当空余堆的内存大于70%时,JVM会减小到-Xms制定的大小;
-Xmx: JVM可申请的最大Heap值,默认为无力内存的1/4但小于1G;(8G内存的机器为:1G);默认当空余堆内存小于40%时,JVM会增大Heap到-Xmx指定的大小;
-XX:MinHeapFreeRation:指定堆内存的放缩比例;
-Xmn:配置年轻代大小,对系统性能影响较大;老年代为-Xmx的值减去它的值;(大对象和大的数组对象会直接在老年代分配);
-XX:PretenureSizeThreshold=? 用于配置大对象的界定,默认为零;超过其值就被认为是大对象;
-Xss: java每个线程的Stack大小;jdk5以后,每个线程堆栈大小为1M; 相同无力内存下,减小这个值能生成更多的线程; OS对一个进程内的现场有限制,大致在3000~5000左右;
-XX:PermSize 持久代的初始化大小;
-XX:MaxPermSize 持久代的最大内存大小:
-XX+UseSerialGc: jvm的默认GC方式,效率较高,但可能给应用带来停顿;
-XX:+UseParallelGC: 并行GC,效率高,算法复杂,消耗较大;
-XX:parallelGCThreads: 并行收集器的线程数;
-XX:+UseCMSCompactAtFullCollection: 在full gc后,对内存碎片进行整理;
-XX:CMSFullGCsBeforeCompaction=? : 用来控制多少次Full GC后进行碎片整理;
参数分类:
-标准参数; -X: 非标准参数; -XX:非Stable参数;
原文 https://segmentfault.com/a/1190000020388548