永发信息网

java 为什么 设置堆内存 而不需要设栈内存

答案:1  悬赏:0  手机版
解决时间 2021-01-30 17:38
java 为什么 设置堆内存 而不需要设栈内存
最佳答案
本文简明概要地说明了java程序的占用内存构成
对象(Objects)
类(Classes)
线程(Theads)
本地数据结构(Native data structures)
本地代码(Native code)
每个因素对内存占用的影响又会随着应用程序、运行环境和系统的不同而变化,那怎样计算总的内存占用量?是的,想得到一个准确的数字不是那么容易,因为你很难控制本地(Native)部分。你能控制的部分只有堆大小:-Xmx,类占用的内存:-XX:MaxPermSize,还有线程栈:-Xss控制每个线程占用的内存。注意当把栈大小设置的太小时会导StackOverflow异常、程序出错。所以,计算公式为:
(-Xmx)+(-XX:MaxPermSize)+线程数*(-Xss)+其它内存
其它内存部分取决于本地代码占用的内存,如NIO、Socket缓冲区、JNI等。它一般大约是JVM内存的5%左右。所以假设我们有下面的JVM参数和100个线程:
-Xmx1024m-XX:MaxPermSize=256m-Xss512k
那么JVM进程至少会占用内存数量为:1024m+256m+100*512k+(0.05*1330m)=1396.5m
我一般使用(1.5*堆最大值)来作为一个近似值表示一个Tomcat进程会需要的最小内存,如果你有需要增加MaxPermSize到256M以上的应用这个值可以更大些。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
重庆市沙坪坝区有哪些好吃的地方?
赤峰学院附属医院停车场(入口)怎么去啊,我要
(  )是项目发起人与其任命并授权的项目经
为什么支链越多的烷烃,热稳定性越差
x+y=9 x-y=-2 x,y分别是多少? 教我用消元法
云岫茶苑怎么去啊,我要去那办事
宏基集团停车场(出入口)地址有知道的么?有点
辍已的意思是什么啊?知道的请说下!
挂历最初的雏形是什么
绵阳有哪些二本大学
怎样去QQ群邀请群友加别人的QQ群
2009年“哥本哈根气候变化大会”全球瞩目,“
百虔钱包安全吗
魏都区许昌学院医学院地址有谁知道?有点事想
博联家园停车场(出入口)地址在什么地方,想过
推荐资讯
相亲认识的女孩,在聊天的过程中,突然和我发
停车场(浦北县公路局东北)地址在什么地方,我
公司放假要我们写请假单合理吗
推荐一下psp实况2012中妖人吧 不要太多 但要
中田村地址有知道的么?有点事想过去
联通的实名制能更改实名信息么?要是能的话需
商场卖出一双安踏运动鞋 厂家有百分之多少的
【能源污染】地热能是不是不污染环境又经济的
至尊会KTV地址在什么地方,我要处理点事
什么地方有卖花的,大点规模的。
江门汇悦城二楼的adidas是不是正品
身上的体毛多 怎么永久去除
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?