我在阅读一篇关于分析线程转储的文章后,有一个问题让我困扰。其中有一段提到,在32位JVM中逻辑最大堆大小为4GB。
这个链接指出,在32位Windows机器上,最大堆大小将约为1.4-1.6 GB。
我的问题是,假设我有大约8GB的RAM,如果我使用32位JVM,这是否意味着我只能利用其中的1.4-1.6 GB?64位JVM允许的最大大小是多少?
非常感谢您的帮助,因为我对此感到困惑。
我在阅读一篇关于分析线程转储的文章后,有一个问题让我困扰。其中有一段提到,在32位JVM中逻辑最大堆大小为4GB。
这个链接指出,在32位Windows机器上,最大堆大小将约为1.4-1.6 GB。
我的问题是,假设我有大约8GB的RAM,如果我使用32位JVM,这是否意味着我只能利用其中的1.4-1.6 GB?64位JVM允许的最大大小是多少?
非常感谢您的帮助,因为我对此感到困惑。
32位系统最大可以寻址4GB内存,即2的32次方。但由于还需要为操作系统腾出空间,因此在32位机器上JVM只能获得1.4-1.6GB内存。
64位系统最大可以寻址2的64次方大小的内存,即(2的32次方)的平方。可以看到,这是一个非常大的数字。