中易网

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

答案:1  悬赏:20  
解决时间 2021-12-31 04:58
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以上的应用这个值可以更大些。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
遏云社的意思是什么啊?请解释下!
除尘骨架的选择有哪些技巧?
萨克斯管种类。我该怎么买
长虹sf2911f➕B电压一下正常一下又变78v怎么
则甚的意思是什么?则甚的释义是什么啊?
谬理的意思是什么啊?请解释下!
內寵的意思是什么?內寵的释义是什么啊?
有哪家公司可以帮助发表SCI文章,请问如何收
私生子的父母无论哪一方有权利把孩子私自送人
朝物的意思是什么?朝物的释义是什么啊?
辩客的意思是什么啊?请解释下!
眉山化学试剂店在哪
斲戶的意思是什么?斲戶的释义是什么啊?
请问,百姓网里的东西是不是真的啊
姐姐的意思是什么啊?请解释下!
推荐资讯
枣菜的意思是什么啊?请解释下!
手刺的意思是什么?手刺的释义是什么啊?
交衡的意思是什么?交衡的释义是什么啊?
镜听的意思是什么?镜听的释义是什么啊?
知豆电动汽车 有没有更换机油滤芯等保养项目
砖业墙地砖批发部地址在什么地方,想过去办事
秦安一中最高分是多少
E1=6V,E2=3V,R1=R2=R3=4Ω,求通过各电阻的
叭嚓的意思是什么啊?请解释下!
请问淘宝网上进口的汉斯格雅,高仪,美标等是
食品里吃到头发怎么投诉
类似美食的俘虏的动漫
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?