Webstorm becomes extremely slow with node.js

Ilan lewin picture Ilan lewin · Sep 10, 2014 · Viewed 32.5k times · Source

Anyone knows what's the deal with this IDE? I have been running it for a while, lately it has become very slow and unresponsive at times. Gobbles up CPU even when just editing a bunch of js files.

Possibilities: 1. My code base is getting bigger... 2. I have several listeners which compile coffeescript and sass files in the background when these change.

In any case, I am very surprised (for the worse) that this is so slow. Would expect better from a developer of an IDE.

Anyone had this kind of problem before? 10x

Answer

Andrew picture Andrew · Apr 12, 2015

There are a couple performance tweaks you can apply to Webstorm to see if it improves your situation. When my colleagues and I found that Webstorm was slowing down these tweaks solved all our problems.

First things first, ensure your project is configured to utilise webstorm resources efficiently by excluding particular directories from a project. This will ensure the containing files are not indexed in memory and will not decrease performance when performing functions such as searching for files or text within files. Some examples of good candidates to exclude are the node_modules directory and compiled code directories.

If there are still performance issues, try the following:

If you are on Windows by default you would be using the 32-bit version. Navigate to the Webstorm directory (within program files) and you'll see webstorm64.exe, which will run Webstorm in 64-bit mode. (You might need to install a proper 64-bits JDK yourself then.)

The default VM options for IntelliJ IDEA may be not optimal when your project contains more than 10000 classes and developers often try to change the default options to minimize IntelliJ IDEA hangtime.

You can try bumping up the JVM memory limits for Webstorm. Open the VM options from the IDE_HOME\bin\<product>[bits][.exe].vmoptions. Initially try doubling the Xms and Xmxmemory values.

Please note that very big Xmx and Xms values are not so good. In this case, GarbageCollector has to work with a big part of memory at a time and causes considerable hang-ups.

For more info on configuring JVM memory options you can refer to: