Java: slow performance or hangups when starting debugger and stepping

Debugger performance can be affected by the following:

  • Method breakpoints will slow down debugger a lot because of the JVM design, they are expensive to evaluate. Remove method breakpoints and consider using the regular line breakpoints. To verity that you don't have any method breakpoints open .idea/workspace.xml file in the project root directory (or <project>.iws file if you are using the old project format) and look for any breakpoints inside the method_breakpoints node.
  • Watch method return values option is enabled in the Debugger Panel. Try disabling this option to improve the performance.
  • Enable alternative views for Collections classes and Enable toString()’ object view options enabled in Settings | Debugger | Data Views. If toString() methods take a long time to complete, disable this option. Note that custom toString() methods can also change the semantics of the application when running under debugger in case the code inside these methods changes the state of your application.
8 comments

My debugger suddenly started to fail to start. I deleted all my breakpoints (~20) & that fixed it.

0

"If toString() methods take a long time to complete, disable this option". After doing this I was able to step through the code without experiencing slowness.

0

Removing the method breakpoint made my debugging faster.. Before that is was none responsive.

0

I must also chime in to say that removing the method breakpoint was the key for me.

It went from a deployment that took (no joke) about 30 minutes, to under 30 seconds.

0

All of these settings are correct locally and I still get freezes from 5 to 10 seconds on every debug run.

I've allocated huge amounts of memory in both gradle, intellij natively, and also set my local host manually in /etc/hosts and still nothing.

0

I'm experiencing the same problem running IntelliJ on my Mac.  Starting a java debugging session hangs IntelliJ 10+ seconds on every start.

0

Thank you Serge that fixed it for me.

TLDR:

git clone https://github.com/thoeni/inetTester

java -jar ./bin/inetTester.jar

Find the hostname that's output from the .jar

sudo nano /etc/hosts and add these two entries

127.0.0.1 <output-host-name>.local

::1 <output-host-name>.local

0

Please sign in to leave a comment.

Have more questions?

Submit a request