

Reducing Java Memory Usage and GC with UseCompressedOops VM Option  - javinpaul
http://blog.leneghan.com/2012/03/reducing-java-memory-usage-and-garbage.html

======
CJefferson
This article fails to say what this flag actually does. My understanding is
that it makes 64 bit java use 32 bit pointers. Using the fact that all java
memory is 8 byte aligned, a 32 bit pointer gets you a 32gb memory space.

~~~
leneghan
Thanks for the feedback, I have now added a bit more information to the
background section as well as a link to a full writeup of how it is done.

------
Tuna-Fish
An interesting tidbit to those who do not know: x86 allows for all memory
accesses to use an addressing mode of base+{1,2,4,8}*index. This allows this
particular optimization to be used with no performance cost for many normal
accesses.

------
JohnLavoie
We love this setting. It gives us a really nice performance boost on big
heaps. Obviously, it can only be enabled on heap sizes below 32GB. We have
found that with this setting enabled on a 32GB heap, we need to go up to 48GB+
in order to achieve the same performance.

~~~
jbooth
48GB??? How long are your old gen GC pauses?

------
mrfu
It is not clear whether it reduces the heap size, or the overall footprint of
the java process.

By the way, if anyone knows of a method to reduce the RSS size of the java
process, I'd be more than grateful to hear about it.

~~~
jbooth
Heap size should be roughly equivalent to the overall footprint unless you're
allocating a lot of native memory or mmapped files from the java process. If
you are, well, that's your answer.

