JDK-6629887 : 64-bit windows should not restrict default heap size to 1400m
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 7
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: windows
  • CPU: x86
  • Submitted: 2007-11-14
  • Updated: 2013-11-01
  • Resolved: 2008-04-18
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6 Other
6u10Fixed hs11Fixed
The default heap size on Windows, both 32 and 64-bit, is 1400mb.  This makes
sense on 32-bit Windows due to the address space break at 2gb, but doesn't
on 64-bit Windows.  We should remove the restriction for 64-bit platforms.

EVALUATION There's #ifdef'ed AMD64 code in src/os_cpu/linux_x86/vm/os_linux_x86.cpp that should probably by #ifdef'ed _LP64. If it were, we could move allocatable_physical_memory back to os_linux.cpp.

SUGGESTED FIX In src/os/windows/vm/os_windows.cpp, replace julong os::allocatable_physical_memory(julong size) { return MIN2(size, (julong)1400*M); } with julong os::allocatable_physical_memory(julong size) { #ifdef _LP64 return size; #else return MIN2(size, (julong)1400*M); #endif }