Announcement Announcement Module
Collapse
No announcement yet.
Performance problems with large projects Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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 !! :-)

  • #2
    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

    Comment


    • #3
      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

      Comment


      • #4
        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

        Comment


        • #5
          Thanks, using https works.

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

          Comment


          • #6
            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

            Comment

            Working...
            X