Reducing memory for OxygenXML
Posted: Tue Sep 06, 2011 2:47 am
I am writing this as we received new workstations running Windows XP that unfortunately have a 2GB memory limit. Moving to Windows 7 or adding more memory are not options. So I tinkered with the JVM settings in the oxygen.vmoptions so see if I could reduce memory consumption. I was able to reduce memory usage significantly.
My investigation was with OxygenXML 12 but following the release of OxygenXML 13 found similar benefits with the modified settings. My testing was to start OxygenXML and load five XML files and validate them against a common schema.
To reduce the consumption of memory I first added the JVM options:
-XX:MaxHeapFreeRatio=40
-XX:MinHeapFreeRatio=20
These settings reduce the free heap memory. I did not experiment with settings such as 'NewRatio', 'NewSize', 'SurvivorRatio' as they are hard to test.
For the GC collector, I first tried:
-XX:+UseParallelGC
-XX:+UseConcMarkSweepGC
These settings worked better than the original setting of 'UseParallelGC'.
Then I tried the Incremental GC for which development has been stopped.
-Xincgc
Surprisingly this worked the best.
My final settings were:
-Xincgc
-XX:MaxHeapFreeRatio=40
-XX:MinHeapFreeRatio=20
Is there someone with JVM experience who could comment on my choice of settings?
My investigation was with OxygenXML 12 but following the release of OxygenXML 13 found similar benefits with the modified settings. My testing was to start OxygenXML and load five XML files and validate them against a common schema.
To reduce the consumption of memory I first added the JVM options:
-XX:MaxHeapFreeRatio=40
-XX:MinHeapFreeRatio=20
These settings reduce the free heap memory. I did not experiment with settings such as 'NewRatio', 'NewSize', 'SurvivorRatio' as they are hard to test.
For the GC collector, I first tried:
-XX:+UseParallelGC
-XX:+UseConcMarkSweepGC
These settings worked better than the original setting of 'UseParallelGC'.
Then I tried the Incremental GC for which development has been stopped.
-Xincgc
Surprisingly this worked the best.
My final settings were:
-Xincgc
-XX:MaxHeapFreeRatio=40
-XX:MinHeapFreeRatio=20
Is there someone with JVM experience who could comment on my choice of settings?