Community
Participate
Working Groups
When I do the following 1) Start with fresh workbench 2) Turn off the auto build preference 3) Import all of Eclipse using the plugin importer including source 4) Switch to the hava Perspective The method org.eclipse.jdt.core.JavaCore.setClasspath variable takes 38222 ms. updateCycleMarkers takes 30 268 ms of this time. Please note that these times were gathered using the OptimizeIt tool - benchmarking with a stopwatch indicates that the same operation takes 16 instead of 38 ms without the profiler.
This is likely due to the model refresh underneath, triggered by the classpath setting operations. We want to revisit this code anyway.
Added a classpath variable setting API allowing to initialize multiple variables at once. In this particular scenario, it will mean 3 times less classpath updates. Need to investigate more to see actual times with new behavior. Also: clients of JavaCore#setClasspathVariable should adopt the new API (JavaCore#setClasspathVariables).
When running the same test case, I am numbers which aren't so bad. I am in particular seeing 70% of the time inside: org.eclipse.core.internal.boot.DelegatingURLClassLoader.findClassParents() see attached profile.
Created attachment 545 [details] Profiling switch to Java perspective
Performed some changes to improve the performance of multi-variable updates, but even without it, I still cannot reproduce the original numbers. Also funaced the too many path canonicalizations (internal calls do not need it). Tod - can you reproduce these numbers after next integration build ?
Consider fixed, unless symptoms are reproduceable.