<p>I've been running into a peculiar issue with certain Java applications in the HP-UX environment.  </p>

<p>The heap is set to -mx512, yet, looking at the memory regions for this java process using gpm, it shows it using upwards of 1.6GBs of RSS memory, with 1.1GB allocated to the DATA region.  Grows quite rapidly over a 24-48hour period and then slows down substantially, still growing 2MB every few hours. However, the Java heap shows no sign of leakage.</p>

<p>Curious how this was possible I researched a bit and found this HP write-up on memory leaks in java heap and c heap: <a href="http://docs.hp.com/en/JAVAPERFTUNE/Memory-Management.pdf" rel="nofollow noreferrer">http://docs.hp.com/en/JAVAPERFTUNE/Memory-Management.pdf</a></p>

<p>My question is what determines what is ran in the C heap vs the java heap, and for things that do not run through the java heap, how would you identify those objects being run on the C heap? Additionally does the java heap sit inside the C heap?</p>

My only guess with the figures you have given is a memory leak in the Java VM.  You might want to try one of the other VMs they listed in the paper you referred.  Another (much more difficult) alternative might be to compile the open java on the HP platform.
Sun's Java isn't 100% open yet, they are working on it, but I believe that there is one in sourceforge that is.
Java also thrashes memory by the way.  Sometimes it confuses OS memory management a little (you see it when windows runs out of memory and asks Java to free some up, Java touches all it's objects causing them to be loaded in from the swapfile, windows screams in agony and dies), but I don't think that's what you are seeing.