评估 64 位操作系统上 32 位 JVM 的最大堆大小
尽管 32 位操作系统架构存在限制,可以确定 32 位 JVM 在64 位操作系统。
最大堆大小取决于多个因素,包括特定的操作系统和 JVM 实现。以下是确定此值的方法:
public class MaxMemory { public static void main(String[] args) { Runtime rt = Runtime.getRuntime(); long totalMem = rt.totalMemory(); long maxMem = rt.maxMemory(); long freeMem = rt.freeMemory(); double megs = 1048576.0; System.out.println("Total Memory: " + totalMem + " (" + (totalMem / megs) + " MiB)"); System.out.println("Max Memory: " + maxMem + " (" + (maxMem / megs) + " MiB)"); System.out.println("Free Memory: " + freeMem + " (" + (freeMem / megs) + " MiB)"); } }
运行此代码会显示默认堆分配,可能需要使用 -Xmx 标志进行调整。
在 Windows 7 Enterprise 64 上位操作系统,32 位 HotSpot JVM 最多可以分配1577MiB。
但是,同一操作系统上的 64 位 JVM 可以处理大约 3TiB 的显着更大的最大堆大小。
总之,32 位 JVM 的最大堆大小64 位操作系统因操作系统而异。对于 Windows,它小于 2GB,对于 BSD/Linux,它小于 3GB,对于 MacOS X,它小于 4GB。具体值还会受到操作系统的工作集和可用物理内存的影响。
以上是64 位操作系统上 32 位 JVM 的最大堆大小是多少?的详细内容。更多信息请关注PHP中文网其他相关文章!