Browse Source

Performance improvement on writing a large index

The index header consists of a 4-byte version number. The current
supported version numbers are 2 and 3. The code checks if any entries
are extended. If it finds any entries that are extended it picks version
'3', otherwise it chooses version '2'.


DirCache.java
-Changed the 'extended' check to exit early when any entry is considered
'extended' in the index.

(Of course, I maybe missing a bitwise optimization that is made in
the Java bytecode.)

Change-Id: If70db9454befe683319b974ebd3774060be9445d
Signed-off-by: Stephen Lawson <slawson@ptc.com>
stable-4.10
Stephen Lawson 7 years ago committed by Matthias Sohn
parent
commit
e3f19a5298
  1. 8
      org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java

8
org.eclipse.jgit/src/org/eclipse/jgit/dircache/DirCache.java vendored

@ -655,8 +655,12 @@ public class DirCache {
final DigestOutputStream dos = new DigestOutputStream(os, foot); final DigestOutputStream dos = new DigestOutputStream(os, foot);
boolean extended = false; boolean extended = false;
for (int i = 0; i < entryCnt; i++) for (int i = 0; i < entryCnt; i++) {
extended |= sortedEntries[i].isExtended(); if (sortedEntries[i].isExtended()) {
extended = true;
break;
}
}
// Write the header. // Write the header.
// //

Loading…
Cancel
Save