Switch ObjectWalk to use a naked CanonicalTreeParser because its faster
commit17bc592f5ca88ed7086f3fb63434cf9123271ceb
authorShawn O. Pearce <spearce@spearce.org>
Thu, 25 Dec 2008 02:11:03 +0000 (24 18:11 -0800)
committerRobin Rosenberg <robin.rosenberg@dewire.com>
Sun, 4 Jan 2009 00:01:53 +0000 (4 01:01 +0100)
tree450af035ff0b022224245b1005a65c420d698f9a
parent0147473253651eed937330f16cdc0606d12817e2
Switch ObjectWalk to use a naked CanonicalTreeParser because its faster

Removing the indirection of the TreeWalk during an ObjectWalk's loop
over the trees saves us 20 seconds on one of my linux-2.6 clones.  On
average we went from 1m37s for "jgit rev-list --objects" down to 1m17s.

C git still does the same operation in 0m20s, so we're a long way from
matching C git's performance, but this is a worthwhile improvement, even
though the code has become slightly more complex.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
org.spearce.jgit/src/org/spearce/jgit/revwalk/ObjectWalk.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/AbstractTreeIterator.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/CanonicalTreeParser.java
org.spearce.jgit/src/org/spearce/jgit/treewalk/TreeWalk.java