0

如果我升级到 64 位,我在 32 位 Ubuntu 系统上运行 minecraft 服务器,我可以为 java 提供的最大内存是多少?我希望它有大约 12 gig 的内存,但我不能在 32 位上做到这一点

4

3 回答 3

3

实际上,64 位系统可以处理的 ram 数量没有最大值。您只会被计算机的硬件阻止。如果您在命令中使用正确的开关,我认为 java 也没有最大数量的分配 RAM。

http://en.wikipedia.org/wiki/64-bit

于 2012-04-15T01:26:40.533 回答
2

需要明确的是,“硬件”包括分页/交换空间,所以如果您实际上需要 12GB 并且只有 8GB 的​​ RAM,那么您需要确保有 4GB 的备用交换空间才能让 Java 成功分配额外的内存.

于 2012-04-15T01:30:39.843 回答
1

来自Java 调优白皮书:

对于 32 位进程模型,进程的最大虚拟地址大小通常为 4 GB,尽管某些操作系统将其限制为 2 GB 或 3 GB。最大堆大小通常为 -Xmx3800m (1600m)(对于 2 GB 限制),但实际限制取决于应用程序。对于 64 位进程模型,最大值基本上是无限的。

但事实是,如此巨大的堆内存使用量(12GB)适得其反。运行很长时间后,您的应用程序花费在垃圾收集上的时间将抵消拥有如此多可用内存的效果。

于 2012-04-15T01:30:37.807 回答