栈内存的结构
每启动一个线程,JVM就会在栈空间栈分配对应的 线程栈, 比如 1MB 的空间( ‐
Xss1m )。
线程栈也叫做Java方法栈。 如果使用了JNI方法,则会分配一个单独的本地方法栈
(Native Stack)。
线程执行过程中,一般会有多个方法组成调用栈(Stack Trace), 比如A调用B,B调用
C。。。每执行到一个方法,就会创建对应的 栈帧(Frame)。
堆内存的结构
Java程序除了栈内存之外,最主要的内存区域就是堆内存了。
细谈Xmx、Xms、Xmn、Meta、DirectMemory、Xss
Xmx, Xms
-Xms、-Xmx分配用来设置进程堆内存的最小大小和最大大小。
Xmn
-Xmn用来设置堆内新生代的大小。通过这个值我们也可以得到老生代的大小:-Xmx减去-Xmn
Meta
DirectMemory
Xss
-Xss设置每个线程可使用的内存大小。