Skip to content

Instantly share code, notes, and snippets.

@bloodf
Last active July 6, 2023 13:49
Show Gist options
  • Save bloodf/9aca7e46864755e6ad8a7426ad76e0fc to your computer and use it in GitHub Desktop.
Save bloodf/9aca7e46864755e6ad8a7426ad76e0fc to your computer and use it in GitHub Desktop.
JetBrains IDE Performance Config

JetBrains IDE Performance Config

High Performance Configuration for Jetbrains IDEs [IntelliJ, WebStorm, etc..]

Motivation

Once you step into the realm of multi-project development, large scale dev, or just have to have like 6 IDE's open. You really start to feel a performance hit on jetbrains IDEs.

This configuration aims to give at least 10x performance increases across the board.

Goals

  • Faster Indexing Times
  • More Responsive IntelliSense
  • Less random freezing or UI lockups
  • Better Memory Management
  • More multi-threading
  • Quicker startup time

What you need to do

The recommended way of changing the JVM options in the recent product versions is from the Help | Edit Custom VM Options menu. To change the IDE options go to *Help | Edit Custom Properties

For Older IDEs, something like this:

$ vim /Applications/IntelliJ\ IDEA\ 15.app/Contents/bin/idea.vmoptions

|- * idea.vmoptions --> Help |> Edit Custom VM Options menu |- * idea.properties --> Help |> Edit Custom Properties

editor.zero.latency.typing=true
idea.max.intellisense.filesize=3500
idea.cycle.buffer.size=2048
-Xms1024m
-Xmx3072m
-Xss64m
-XX:ReservedCodeCacheSize=512m
-XX:+UseCompressedOops
-XX:NewRatio=2
-Dfile.encoding=UTF-8
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=250
-XX:NewSize=512m
-XX:MaxNewSize=512m
-XX:PermSize=512m
-XX:MaxPermSize=1024m
-XX:+UseParNewGC
-XX:ParallelGCThreads=4
-XX:MaxTenuringThreshold=1
-XX:SurvivorRatio=8
-XX:+UseCodeCacheFlushing
-XX:+AggressiveOpts
-XX:+CMSClassUnloadingEnabled
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:+CMSParallelRemarkEnabled
-XX:CMSInitiatingOccupancyFraction=65
-XX:+CMSScavengeBeforeRemark
-XX:+UseCMSInitiatingOccupancyOnly
-XX:-TraceClassUnloading
-XX:+AlwaysPreTouch
-XX:+TieredCompilation
-XX:+DoEscapeAnalysis
-XX:+UnlockExperimentalVMOptions
-XX:LargePageSizeInBytes=256m
-XX:+DisableExplicitGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+PrintGCDetails
-XX:+PrintFlagsFinal
-XX:+HeapDumpOnOutOfMemoryError
-XX:+CMSPermGenSweepingEnabled
-XX:+UseAdaptiveGCBoundary
-XX:+UseSplitVerifier
-XX:CompileThreshold=10000
-XX:+UseCompressedStrings
-XX:+OptimizeStringConcat
-XX:+UseStringCache
-XX:+UseFastAccessorMethods
-XX:+UnlockDiagnosticVMOptions
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:-OmitStackTraceInFastThrow
-Xverify:none
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
-Dide.no.platform.update=true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment