栈: 服务于线程,每一个线程都有一个栈,用于存放该线程的局部变量,对象引用,方法地址及返回值引用等。每一个方法的执行和返回,都伴随着一个栈帧在栈中的入栈和出栈。
程序计数器:服务于线程,每一个线程都有一个程序计数器,用于记录该线程现在执行到哪一行指令了。
堆:各个线程可以共享的一段内存,存放各个地方new出来的对象以及对象中的成员变量。
方法区:存放一切静态的东西,包括static的成员,class对象,常量。
-Xss JVM每个线程的栈的大小,缺省为1m,可调整如,-Xss 256k
-Xms JVM堆的最小值
-Xmx JVM堆的最大值
-XX:NewSize JVM新生代最小值(比-Xmn优先级高)
-XX:MaxNewSize JVM新生代最大值(比-Xmn优先级高)
-Xmn JVM新生代的大小(比-XX:NewRatio优先级高,相当于一次性设定NewSize和MaxNewSIze,而且两者相等)
-XX:PermSize JVM方法区初始值(1.8以后方法区叫做元空间 -XX:MetaspaceSize)
-XX:MaxPermSize JVM方法区最大值(1.8以后方法区叫做元空间 -XX:MaxMetaspaceSize)
-server 启用server模式
-XX:+DoEscapeAnalysis:启用逃逸分析, 加速对象分配速度,server模式才能启用逃逸分析(默认打开)
-XX:+EliminateAllocations:标量替换,加速对象分配速度(默认打开)
-XX:+UseTLAB 打开本地线程分配缓冲,加速对象分配速度(默认打开)