【发布时间】:2012-05-04 21:05:01
【问题描述】:
堆是 RAM 的一部分。但是仍然有一个限制,我们不能定义超出 RAM 的某个百分比的堆大小。例如:- 我有 32 位 winodws xp OS 和 4 GB 内存。但我不能声明堆大小超过 1600 MB。 我的问题是为什么我们不能将堆大小声明为某个较大的值,比如 3GB 低于我的 4GB RAM(因为在 32 位中最多可以使用 4GB 的 RAM)?这适用于单个进程。
我的意思是我可以启动两个 tomcat 或任何其他 java 进程 为每个进程分配 1600MB 堆大小,但我无法为单个进程分配 3200MB。这背后的原因是什么?
【问题讨论】:
-
除了 JVM,还有其他的栈持有者也可以使用 RAM。
标签: java jvm heap-memory