JDK-6292967 : (spec) Unable to allocate large memory arrays on 64 bit linux
  • Type: Enhancement
  • Component: specification
  • Sub-Component: language
  • Affected Version: 5.0
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: linux
  • CPU: itanium
  • Submitted: 2005-06-30
  • Updated: 2005-07-20
  • Resolved: 2005-07-20
Related Reports
Duplicate :  
Description
A DESCRIPTION OF THE REQUEST :
Limited api/jvm for utilizing capability of  64 bit machines with large amounts of RAM.( >32Gig of RAM ).
The below will not work because the arguement for array allocation is limited to a 32 bit integer.

long size = 10000000000l;  // ~10Gig  RAM as a long
byte bigarray [ ] = new byte[size];

JUSTIFICATION :
Many fields of computing routinely allocate huge amounts of RAM.
{weather, seismic, dna, data mining, astronomy, and more }

Large memory on 64 bit machines is done both for computation and mapped file IO.  The memory allocations can be done in C/C++ without any problem.

We are unable to use Java for a  various projects because of this.



EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -

Ability to allocated RAM using longs and NIO bytebuffer support on 64 bit platforms.

long size = 10000000000l;  // ~10Gig  RAM as a long
byte bigarray [ ] = new byte[size];
ACTUAL -

Error trying to use 'long' to allocate memory.
Eventhough there is plenty of memory available.

---------- BEGIN SOURCE ----------


long size = 10000000000l;  // ~10Gig  RAM as a long
byte bigarray [ ] = new byte[size];
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :

We are using C/C++ instead.
###@###.### 2005-06-30 17:35:04 GMT