栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何计算(并指定)java进程允许的总内存空间?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何计算(并指定)java进程允许的总内存空间?

顶部
报告1.6GB,因为PermSize在堆大小最大堆大小的上面。在您的情况下,将MaxPermSize设置为512m,将Xmx设置为1024m。总计1536m。与其他语言一样,除非您确切知道启动了多少线程,使用了多少文件句柄等,否则无法计算出绝对精确的数字。每个线程的堆栈大小取决于OS和JDK版本,在您的情况下,取决于其版本1024k(如果是64位计算机)。因此,如果您有10个线程,则将额外使用10240k,因为堆栈不是从堆(Xmx)中分配的。设置较低的堆栈和MaxPermSize时,大多数表现良好的应用程序都能完美运行。尝试将ThreadStackSize设置为128k,如果遇到StackOverflowError(即,如果进行了很多深度递归),则可以逐步增加它,直到问题消失。

因此,我的回答实质上是您无法将其控制在MB范围内,Java进程将使用多少内存,但是通过设置-Xmx1024m -XX:MaxPermSize =
384m和-XX:ThreadStackSize = 128k
-XX:+可以使您接近UseCompressedOops。即使您有很多线程,在达到1.5GB之前,您仍有 足够
的空间。UseCompressedOops告诉VM即使在64位JVM上运行时也要使用狭窄的指针,从而节省了一些内存。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414049.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号