-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可用创建的新线程也就越少.
本文详细解释了JVM参数-Xms、-Xmx和-Xss的作用及意义,并探讨了它们如何影响Java应用程序的内存分配。文章还澄清了一个常见的误解:即Java线程并非直接从JVM内存中分配空间,而是由操作系统为每个线程分配内存。
681

被折叠的 条评论
为什么被折叠?



