jvm 内存分配小记

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-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可用创建的新线程也就越少.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值