How to minimize (unshareable) memory usage?

Andrew Haley aph@redhat.com
Mon Jan 18 09:50:00 GMT 2010


On 01/18/2010 09:40 AM, Justin Santa Barbara wrote:
> I have some simple Java utilities that I've written that need to run
> on machines with limited free memory, and I'm looking at GCJ for this.
>  Using the full Sun JVM we run into problems with memory usage - we're
> able to limit the heap to 8MB, but we need to allow at least 16MB for
> PermGen (despite not really having much application code), and at
> least 8MB for ReservedCodeCacheSize;  even a simple utility therefore
> needs at least 32MB of unshareable memory.
> 
> Running under GCJ the results are encouraging, but still not as good
> as I'd hope.  The output from pmap is included below.  The interesting
> ones are these four:
> 00010000  10404K rw---    [ anon ]
> b4125000   8192K rw---    [ anon ]
> b49d2000   8192K rw---    [ anon ]
> b7096000   6324K rw---  /usr/lib/libgcj.so.10.0.0
> 
> I've limited GCJ to 10MB of heap (it seems to need a little more than
> the Sun JVM for some reason), so that's the first entry.  But what are
> the two 8MB anonymous allocations that aren't the 10MB heap?   What is
> the 6MB of read/write libgcj mappings?

Hard to be sure, but propbably more heap.  To find out for sure I'd put
a breakpoint on mmap().

Andrew.



More information about the Java mailing list