gpt4 book ai didi

java - 对于给定的内存大小,单个进程允许使用的最大堆内存?

转载 作者:太空宇宙 更新时间:2023-11-04 08:16:38 24 4
gpt4 key购买 nike

堆是 RAM 的一部分。但是仍然存在一个限制,即我们无法定义超出 RAM 一定百分比的堆大小。例如:- 我有 32 位 winodws xp 操作系统和 4 GB 内存。但我不能声明堆大小超过 1600 MB。 我的问题是为什么我们不能将堆大小声明为某个较大的值,例如 3GB 低于我的 4GB RAM(因为 32 位可以使用最多 4GB RAM)?这对于单个进程来说是正确的。

我的意思是我可以启动两个tomcat或任何其他java进程 为每个进程分配 1600MB 堆大小,但我无法为单个进程分配 3200MB。这背后的原因是什么?

最佳答案

32 位 Windows 只允许单个进程使用 2GB 地址空间(不启用特殊扩展)。操作系统将另外 2GB 保留给自己。然后,堆之上并不是 JVM 所需的全部内存。有permgen空间,以及JVM本身的代码使用的内存。

关于java - 对于给定的内存大小,单个进程允许使用的最大堆内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10294332/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com