Thread (8 messages) flat view 8 messages, 4 authors, 2016-06-15

Re: [PATCH 0/3] avoid quadratic behavior in fetch-pack

From: Martin Fick <hidden>
Date: 2016-06-15 22:57:58

On Tuesday, July 02, 2013 12:11:49 am Jeff King wrote:
Here are my patches to deal with Martin's pathological
case, split out for easy reading. I took a few timings
to show that the results of the 3rd patch are noticeable
even with 50,000 unique refs (which is still a lot, but
something that I could conceive of a busy repo
accumulating over time).

  [1/3]: fetch-pack: avoid quadratic list insertion in
mark_complete [2/3]: commit.c: make
compare_commits_by_commit_date global [3/3]: fetch-pack:
avoid quadratic behavior in rev_list_push

And here's the diffstat to prove it is really not scary.
:)

 commit.c     |  2 +-
 commit.h     |  2 ++
 fetch-pack.c | 16 ++++++++--------
 3 files changed, 11 insertions(+), 9 deletions(-)

-Peff
I applied these 3 patches and it indeed improves things 
dramatically.  Thanks Peff, you are awesome!!!


The synthetic test case (but sorted), now comes in at around 
15s.  The more important real world case (for us), fetching 
from my production server, which took around 12mins 
previously, now takes around 30s (I think the extra time is 
now spent on the Gerrit server, but I will investigate that 
a bit more)!  That is very significant and should make many 
workflows much more efficient.  +1 for merging this. :)

Again, thanks,

-Martin


Note, I tested git-next 1.8.3.2.883.g27cfd27 to be sure that 
it is still problematic without this patch, it is (running 
for 10mins now without completing).


-- 
The Qualcomm Innovation Center, Inc. is a member of Code 
Aurora Forum, hosted by The Linux Foundation
 
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help