So, for the sbt project we noticed significant resolution time improvements
with the following patch:

https://github.com/sbt/ivy/pull/1

The reasoning:


   - A lot of artifacts being resolved use Maven's "dependencyManagement"
   conventions
   - Ivy appears to turn these into "exact matcher" rules
   - A ton of resolution time is spent filtering through these rules
   - The existing solution is O(n) for all overrides


What the patch does:


   - Creates a key'd store for all "exact matcher" rules
   - When executing rules, ensure that we only traverse what we have to
   (non-exact, exact specific to our key and "default").


As I said, this represents a significant speed bump for sbt builds using
Ivy.  All existing tests pass, and I think they cover this aspect of ivy
pretty well, from what I could see.

What's the best mechanism to submit this back?  Do you accept pull requests
on github?

Thanks!
- Josh Suereth
  Tools Lead
   Typesafe, Inc.

Reply via email to