GC heap sizing and program memory overhead
===

I'm trying to figure out what's happening with my application.

Problems: 

- GC invoking doesn't reduce unused heap size as much as it should, but it should since I'm using serial GC (or UseParNewGC) and agressive heap ratios.

- The program's memory in use is always a lot bigger than the current used and unused heap, too much in my opinion even with other JVM memory included + heap

Command line used:

"java -XX:+UseSerialGC -XX:MinHeapFreeRatio=5 -XX:MaxHeapFreeRatio=10 -Xmx2500M -cp XXXXXX.jar xxxx.xxxx.xxxx

pause"

*tried with UseParNewGC, same results*

System:
Win7 SP1
4GB RAM + 4GB swapfile
2.99GHZ
Java 1.7 + JDK 1.7

Please see picture to make things more clear:
http://i.stack.imgur.com/i3sxw.jpg