Skip to content
Prasad Talasila edited this page Jun 26, 2020 · 5 revisions

Overture and the VDM models run on Overture tool are memory intensive. Hence, you as a user might need to tune the Java Virtual Machine (JVM) settings for effective user of Overture tool. This Eclipse help for proper way to define JVM settings for launching Overture application from inside Eclipse project. In case you are using the Overture executable directly, please modify Overture.ini file.

Some useful VM arguments are:

-XX:+UseG1GC 
-XX:+PrintGCDetails 
-XX:+PrintTenuringDistribution 
-Xloggc:/<absolute_file_path>/overture_gc.log   
-XX:+UseStringDeduplication 
-Xmx1g 
-XX:NewSize=50M 
-XX:MaxNewSize=100M 
-verbose:class 
-Xprof 
-XX:+UnlockDiagnosticVMOptions 
-XX:LogFile=/<absolute_file_path>/overture.log

A concise explanation of these and some other flags is provided below.

Flag Explanation
-Xms min heap size, for example -Xms1g
-Xmx max heap size, for example -Xmx4g
-XX:+UseG1GC GI GC algo; also use string deduplication flag
-XX:NewSize=size 0.25 to 0.5 of total heap; smaller leads to frequent GC and delays full GC
-XX:MaxNewSize=size Sets the maximum size (in bytes) of the heap for the young generation (nursery)
-XX:+UseStringDeduplication deduplicate immutable strings
-XX:+PrintGCDetails Enables printing of detailed messages at every GC.
-Xloggc:filename Sets the file to which verbose GC events information should be redirected for logging
-XX:+PrintTenuringDistribution Enables printing of heap tenuring age information
-verbose:class log of classes loaded into method area of JVM memory; lots of details, but might be useful as a last option to track classes in large models; this log is shown on the terminal, you might want to redirect the same for later analysis.
-Xprof Shows the logs of classes being interpreted / compiled inside Overture (see the explanation)
-XX:+AggressiveHeap Enables automated heap optimization. Worth an initial try

The debug flags of JVM are not well documented. To see the list of available debug flags for your version of JVM, try

java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version

Clone this wiki locally