jvm 内存分配小记

-Xms   为jvm启动时分配的内存,比如-Xms100m,表示分配100m
-Xmx   为jvm运行过程中分配的最大内存,比如-Xms200m,表示jvm进程最多只能够占用200m内存
-Xss   为jvm启动的每个线程分配的内存大小,JDK1.4默认256K,JDK1.5+默认1M
 
上面两个参数主要是来设置jvm的最小可用内存和最大可用内存,属于进程级别的内存控制。
在java中每个线程需要分配线程内存,用来存储自身的线程变量,我之前的理解一直是在java中new新线程的时候是直接使用jvm的内存,可实际情况却不是这样的。在java中每new一个线程,jvm都是向操作系统请求new一个本地线程,此时操作系统会使用剩余的内存空间来为线程分配内存,而不是使用jvm的内存。

 

这样,当操作系统的可用内存越少,则jvm可用创建的新线程也就越少.

你可能感兴趣的:(内存分配)