...
As such, in many cases it is better to scale horizontally (running multiple JVMs) as opposed to using one giant JVM. This point is true for both 32-bit and 64-bit JVMs.
Just to be clear, you still should use a 64-bit Operating Systems. A 64-bit Operating System will allow a 32-bit JVM to come closer to the theoretical 4GB memory limit.
...
* Due to various additional constraints such as available swap, kernel address space usage, memory fragmentation, and VM overhead, in practice the limits will vary.
So I should never use 64-bit Java?
No, the point is to closely look at your application profile, user base and hardware and determine if you really do need to use a 64-bit JVM.
It has just been in our experience that often our profiles fall in,
- Application profiles use less than 4GB of memory and if they used more we use multiple JVM instances
- There is usually a 10%-15% hit in performance
- Large customer base
- Hardware with multiple CPUs handles multiple JVMs better
And let's not forget that if we want to switch to 64-bit it is simply a matter of recompiling.
Research
According to, Software - Practice & Experience archive Volume 36 Issue 1, January 2006,
...