apache / netbeans

Apache NetBeans
https://netbeans.apache.org/
Apache License 2.0
2.65k stars 850 forks source link

GraalVM Debugging Support module can reduce debugging performance #7663

Open mbien opened 2 months ago

mbien commented 2 months ago

while debugging a problem I noticed a performance anomaly when I debugged NB 23 with NB 22. (JDK Corretto 22.0.2, version made no difference)

benchmark:

  1. clear the test userdir (nbbuild/testuserdir/)
  2. start debugging a NB module
  3. create a new maven project using the dev build IDE, measure the time between pressing finish and project open

results:

NB   run1  run2  run3
22   42s   6:33
21   46s   7:04  38s
20   1:10
19   1:05  18s

The first observation is that the time is vastly different between runs. But even the faster runs are surprisingly slow. This is also no recent regression since I tested even NB 19.

The second observation is that the number of JarClassLoader warnings correlated with how long it took, example warning:

WARNING [org.netbeans.JarClassLoader]: Opening /home/mbien/NetBeansProjects/netbeans/nbbuild/netbeans/ide/modules/ext/truffle-api-24.0.0.jar took 651 ms

(there can be a lot of repeating warnings)

async profiler flamegraph showed that a most of the time is spent in org.graalvm.polyglot.* codepaths. truffle_debug.html.zip GraalEnginesProvider#enumarateLanguages specifically.

to verify this I uninstalled GraalVM Debugging Support and tested again:

NB   run1  run2 
22   2s    3s

(don't uninstall the module in your "production" IDE)

Debugging did still work.

This is going to need some more investigations.