Skip to content

Instantly share code, notes, and snippets.

@anein
Created December 5, 2017 21:56
Show Gist options
  • Save anein/2d8c17aba650099ee23e112bae1b6607 to your computer and use it in GitHub Desktop.
Save anein/2d8c17aba650099ee23e112bae1b6607 to your computer and use it in GitHub Desktop.
My performance options for WebStorm with some explanatory comments
# Enables the server VM. Though this option is implicitly enabled on a 64-bit capable jdk
# Xms should be equal to Xmx.
-server
# Enables assertions
-ea
# Sets the initial size of the heap
-Xms2G
# Specifies the maximum size of the memory allocation pool
-Xmx2G
# Sets the initial and maximum size of the heap for the young generation
-Xmn1G
# Sets the space (in bytes) allocated to the permanent generation that triggers a garbage collection if it is exceeded
# @deprecated in JDK 8
# -XX:PermSize=512m
# Sets the maximum permanent generation space size
# @deprecated in JDK 8
# -XX:MaxPermSize=1G
# Specifies the maximum code cache size for JIT-compiled code
-XX:ReservedCodeCacheSize=1G
# Sets the number of threads used for parallel garbage collection in the young and old generations
-XX:ParallelGCThreads=4
# Sets the maximum tenuring threshold for use in adaptive GC sizing. It's an alternative of ParallelGCThreads.
# -XX:MaxTenuringThreshold=1
# Sets the ratio between each survivor space and eden
-XX:SurvivorRatio=8
# Enables flushing of the code cache before shutting down the compiler. This option is enabled by default.
# @default
#-XX:+UseCodeCacheFlushing
# Enables the use of the CMS garbage collector for the old generation. Also this option activates the UseParNewGC option.
-XX:+UseConcMarkSweepGC
# Enables the use of parallel threads for collection in the young generation
# if -XX:+UseConcMarkSweepGC is enabled, this option is automatically set
# -XX:+UseParNewGC
# Enables class unloading when using the concurrent mark-sweep (CMS) garbage collector
# @default
# -XX:+CMSClassUnloadingEnabled
# Enables the incremental mode for the CMS collector
# @deprecated in JDK 8
# -XX:+CMSIncrementalMode
# Enables automatic adjustment of the incremental mode duty cycle based on statistics collected while the JVM is running
# @deprecated in JDK 8
-XX:+CMSIncrementalPacing
# Sets the percentage of the old generation occupancy (0 to 100) at which to start a CMS collection cycle
# the size of the old generation when CMS has to start: (Xms - Xmn) / CMSInitiatingOccupancyFraction => (4G - 1G) / 50 = 1.5G
-XX:CMSInitiatingOccupancyFraction=50
# Enables scavenging attempts before the CMS remark step
-XX:+CMSScavengeBeforeRemark
# Enables the use of the occupancy value as the only criterion for initiating the CMS collector
-XX:+UseCMSInitiatingOccupancyOnly
# Enables the use of aggressive performance optimization features
-XX:+AggressiveOpts
# Sets the amount of time (in milliseconds) a softly reachable object is kept active on the heap after the last time it was referenced
-XX:SoftRefLRUPolicyMSPerMB=50
#-XX:+HeapDumpOnOutOfMemoryError
# Disables completely the use of preallocated exceptions. In fact, does't impact on performance.
# @source https://blog.dripstat.com/java-exception-stacktraces-in-production/
# -XX:-OmitStackTraceInFastThrow
# Disables Java's canonicalization cache
-Dsun.io.useCanonCaches=false
# Enables the initial HiDPI support for 4k displays
-Dhidpi=true
# Sets the font rendering
-Dawt.useSystemAAFontSettings=lcd
# Uses Marlin Java2D RenderingEngine
-Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment