Results 1 to 6 of 6

Thread: Performance problems with large projects

  1. #1
    Join Date
    May 2007
    Location
    Hamburg, Germany
    Posts
    44

    Default Performance problems with large projects

    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 !! :-)
    Attached Files Attached Files

  2. #2
    Join Date
    Aug 2004
    Location
    Duesseldorf, Germany
    Posts
    1,210

    Default

    Hi,

    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.
    That is great! Thanks. I will incorporate your patch into the code base and make sure that it finds its way into the 2.0.1 release.

    Maybe you wanna open a ticket and attach an "official" patch to that, so we can track the contribution.

    Christian
    Christian Dupuis
    SpringSource, a division of VMware
    Lead, SpringSource Tools Team
    http://www.springsource.com
    http://twitter.com/cdupuis

  3. #3
    Join Date
    May 2007
    Location
    Hamburg, Germany
    Posts
    44

    Default

    Hi!

    Thanks for your answer. I'm not able to open a ticket since I get "You don't have permission to access /project/newticket on this server." when I want to submit the ticket. Do I have to register myself for the ticket system (where?)?

    Nils

  4. #4
    Join Date
    Aug 2004
    Location
    Duesseldorf, Germany
    Posts
    1,210

    Default

    Do I have to register myself for the ticket system (where?)?
    That is our mod_security configuration. Can you try to create the ticket using https? That should work as we don't have mod_security on the https site.

    Christian
    Christian Dupuis
    SpringSource, a division of VMware
    Lead, SpringSource Tools Team
    http://www.springsource.com
    http://twitter.com/cdupuis

  5. #5
    Join Date
    May 2007
    Location
    Hamburg, Germany
    Posts
    44

    Default

    Thanks, using https works.

    http://springide.org/project/ticket/687

  6. #6
    Join Date
    Aug 2004
    Location
    Duesseldorf, Germany
    Posts
    1,210

    Default

    I applied the changes you suggested. If you are curious you can get the SVN head from http://build.springframework.org:808...tesite_nightly (you can use the URL as eclipse update site).

    Hope that solved the performance issues.

    Christian
    Christian Dupuis
    SpringSource, a division of VMware
    Lead, SpringSource Tools Team
    http://www.springsource.com
    http://twitter.com/cdupuis

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •