Hi,
I'm running a 64-bit application on the 64-bit OS and a 64-bit processor with following startup options:
java -d64 -server -Xms512m -Xmx4096m -Xmn256m -XX:+HeapDumpOnOutOfMemoryError -XX:-DisableExplicitGC -XX:+UseG1GC -XX:+AggressiveOpts -XX:+UnlockExperimentalVMOptions -XX:+DoEscapeAnalysis -XX:MaxGCPauseMillis=400 -XX:GCPauseIntervalMillis=8000 -jar oltpj-processor.jar
But when the application starts it occupies 4.4G to 5.1G memory which is a big concern for me.
Previously, I was running this application on 32-bit system with -Xmx3072m, it was then occupying upto 3.4-3.8G memory.
My Question:
- Why occupying more memory then allocated?
- Does the JVM occupy all the assigned momory, irrespective of actual physical allocation of the objects?