首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java减小堆栈大小以节省内存

Java减小堆栈大小以节省内存
EN

Stack Overflow用户
提问于 2012-04-07 07:31:29
回答 3查看 1.4K关注 0票数 0

我想减少Java应用程序的内存占用,以减少交换。为此,我一直在考虑减少堆栈大小(Xss参数),但不确定堆栈内存是如何分配的,也不确定每个线程的默认512k (对于32位操作系统)是否始终位于常驻内存中,而不管它实际使用了多少。

堆栈内存的减少会导致交换的减少吗?

更新:请不要建议分析应用程序-它已经完成了。

EN

回答 3

Stack Overflow用户

发布于 2012-04-07 08:13:04

你在运行多少个线程?即使有大量的线程和非常大的堆栈大小(比如10k线程和256KB的堆栈大小),也只有2 2GB的堆空间。

您说您正在32位JVM上运行,所以我认为这是一个相对较小的系统。您有几个选项:

  • 切换到64位JVM。现在你有大量的地址空间,堆栈大小应该是inconsequential
  • Your,机器太小了。如果2 2gb的堆栈是10k+线程的问题,那么您在太“小”的机器上运行的应用程序太“大”了。在软件上少做点或者多买点,你的线程数和
  • 的问题实际上出在别的地方,你找错了地方

票数 5
EN

Stack Overflow用户

发布于 2012-04-07 07:59:19

是的,当然它的后进先出规则是后进先出,少堆少交换

票数 0
EN

Stack Overflow用户

发布于 2012-04-07 08:10:45

您使用了多少内存,需要节省多少内存?

由于堆栈每个线程只有512K,这意味着您需要200个线程才能开始输入一个可能值得保存的值(100Mb)

由于堆栈内存的使用是“非常频繁的”,我认为它不是一个很好的交换目标。除非您正在处理内存受限的环境?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10050377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档