Uploaded image for project: 'Maven'
  1. Maven
  2. MNG-6311

Maven intolerably slow when import scope used heavily in large project

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.5.0, 3.5.2
    • Fix Version/s: 3.6.0
    • Component/s: core, Performance
    • Labels:

      Description

      I have a build performance problem that is identical to MNG-5312, and has appeared since MNG-6030 in Maven v3.5.0 reversed the patch for MNG-5312, removing the ModelCache from some of the overloads for DefaultProjectBuilder.build.

      As in MNG-5312 the problem is in a large proprietary project. It uses up to 8 levels of parent POMs, many of which use the import scope and have large dependency-management sections, and has hundreds of dependencies that also use the same parent POM hierarchy. Adding some logging shows that Maven does over 800,000 uncached reads of parent POM files, which takes about half an hour. With model caching this goes down to a few seconds.

      I've attached a patch that fixes this by using a class-level ModelCache in DefaultProjectBuilder. This does not suffer from the memory usage problems reported in MNG-6030.

        Attachments

        1. modelcachefix.diff
          4 kB
          David Churcher
        2. Call-tree-–-All-threads-together.html
          288 kB
          Thomas Nikolay
        3. anon-hierarchy-maven-output.zip
          816 kB
          David Churcher

          Issue Links

            Activity

              People

              • Assignee:
                slachiewicz Sylwester Lachiewicz
                Reporter:
                dchr David Churcher
              • Votes:
                2 Vote for this issue
                Watchers:
                16 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: