Return-Path: X-Original-To: apmail-ant-notifications-archive@minotaur.apache.org Delivered-To: apmail-ant-notifications-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 2434710347 for ; Tue, 1 Apr 2014 19:48:22 +0000 (UTC) Received: (qmail 75172 invoked by uid 500); 1 Apr 2014 19:48:21 -0000 Delivered-To: apmail-ant-notifications-archive@ant.apache.org Received: (qmail 75029 invoked by uid 500); 1 Apr 2014 19:48:15 -0000 Mailing-List: contact notifications-help@ant.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ant.apache.org Delivered-To: mailing list notifications@ant.apache.org Received: (qmail 75010 invoked by uid 99); 1 Apr 2014 19:48:14 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Apr 2014 19:48:14 +0000 Date: Tue, 1 Apr 2014 19:48:14 +0000 (UTC) From: "Joshua Suereth (JIRA)" To: notifications@ant.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Created] (IVY-1465) ModuleRules.getRule is O(n) leading to resolution slowness MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 Joshua Suereth created IVY-1465: ----------------------------------- Summary: ModuleRules.getRule is O(n) leading to resolution slowness Key: IVY-1465 URL: https://issues.apache.org/jira/browse/IVY-1465 Project: Ivy Issue Type: Bug Components: Core Affects Versions: 2.3.0 Environment: OpenJDK 6,7, MacOSX + Ubuntu Reporter: Joshua Suereth Priority: Minor 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. -- This message was sent by Atlassian JIRA (v6.2#6252)