为什么 64 位 Java 比 32 位 Java 占用更多内存?

为什么 64 位 Java 比 32 位 Java 占用更多内存?

使用 Eclipse 时,我注意到在不同 Java 平台上运行时其内存使用量存在显著差异。使用 32 位 Java 平台时,它占用 ~200MB RAM,但在 64 位下运行时,内存使用量显著增加到 ~700MB。

这是预期的行为吗?为什么会发生?

答案1

Java 使用的最大内存量在命令行上指定(最大堆大小参数 -Xmx)。如果未指定任何内容,则使用默认值。该默认值在去年有所增加。以前约为 200 MB,而现在则高得多。

因此,我假设您正在使用非常旧的 Java 32 位版本,因此使用了旧的默认值。

您可以在 eclipse.ini 中指定 Eclipse 的值,从而设置所需的内存量。

也可以看看常见问题解答 如何增加 Eclipse 可用的堆大小?降低堆大小也是同样的过程。

^但我不得不说,一般来说,64 位进程需要更多内存,因为它们使用的地址指针更大。因此,当您尝试运行最大堆大小仅为 200 MB 的 Eclipse 时,您可能会收到 OutOfMemory 错误。

Eclipse 过去和现在都是一个巨大的内存怪物。内存占用越多,运行效果就越好...

答案2

尝试看看你的eclipse.ini文件指定了 eclipse 可以使用的内存量。您应该能够降低它使用的内存量。但是使用 java 进行开发通常会占用相当多的 RAM。

账单

相关内容