
reserve 值指定虚拟内存中的总的堆栈分配。对于 x86 和 x64 计算机,默认堆栈大小为 1 MB。在 Itanium 芯片组上,默认大小为 4 MB。
commit 取决于 *** 作系统所作的解释。在 Windows NT 和 Windows 2000 中,它指定一次分配的物理内存量。提搏斗交的虚拟内存导致空间被保留在页面文件中。更高的 commit 值在应用程序需搭纳要更多堆栈空间时可节省时间,但会增加内存需求并有可能延长启动时间。对于 x86 和知银没 x64 计算机,默认提交值为 4 KB。在 Itanium 芯片组上,默认值为 16 KB。
以十进制或 C 语言表示法指定 reserve 值和 commit 值。
本文简明概要地说明了java程序的占用内存构成对象(Objects)
类(Classes)
线程(Theads)
本地数据缓芹结构(Native data structures)
本地代码(Native code)
每个因素对内存占扰郑毕用的影响又会随着应用丛尘程序、运行环境和系统平台的不同而变化,那怎样计算总的内存占用量?是的,想得到一个准确的数字不是那么容易,因为你很难控制本地(Native)部分。你能控制的部分只有堆大小:-Xmx,类占用的内存:-XX:MaxPermSize,还有线程栈:-Xss控制每个线程占用的内存。注意当把栈大小设置的太小时会导StackOverflow异常、程序出错。所以,计算公式为:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)