Hi,
I'm using the Spring IDE with Eclipse 3.3. Our workspace consists of about 150 Eclipse projects, some of them with "Spring nature" and spring.xml files. When the springbuilder is working on a project that has a lot of dependencies (to other projects in the workspace) its getting quite slow, validating a spring.xml file took in bad situations more than three minutes.
The reason for this bad performance seems to be the JdtUtils.getClassPathURLs()-method, which took several minutes when it comes to projects with many dependencies (to other projects with many dependencies and so on). The reason seems to be that it doesn't do any "caching" of classpath URLs of projects that already have been read. Furthermore there is no check that a classpath URL isn't added more than once to the list with classpath URLs (if project A depends on B and C and B depends on C the classpath of A contains C two times).
To overcome this problems I built a slightly modified version of getClassPathURLs that does caching (for each invocation) and that checks if a classpath url has already been added to the classpath. With this modifications the method only took a few seconds, no performance problems anymore. If you're interessted in the changes, please hava a look at the patched JdtUtils class I've attached to this thread.
My question: is there another way to increase perfomance or would it be possible to get this changes into the "regular" SpringIDE code?
Regards,
Nils
BTW: SpringIDE really rocks - thanks for your work !! :-)


Reply With Quote