]> source.dussan.org Git - jgit.git/commitdiff
PackWriter: Export more statistics 13/4013/5
authorShawn O. Pearce <spearce@spearce.org>
Mon, 15 Aug 2011 23:38:28 +0000 (16:38 -0700)
committerShawn O. Pearce <spearce@spearce.org>
Wed, 14 Sep 2011 22:34:55 +0000 (15:34 -0700)
Export the shallow pack information, and also a handy function to
sum up the total times.  Include the time writing out the index file,
if it was created.

Change-Id: I7f60ae6848455a357b25feedb23743bbf6c153cf
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java

index 0e3455439563f08672fa35764c4120023ad80956..ab4083182390087a1a8b4690a133782bacd30c2c 100644 (file)
@@ -714,6 +714,7 @@ public class PackWriter {
                if (!cachedPacks.isEmpty())
                        throw new IOException(JGitText.get().cachedPacksPreventsIndexCreation);
 
+               long writeStart = System.currentTimeMillis();
                final List<ObjectToPack> list = sortByName();
                final PackIndexWriter iw;
                int indexVersion = config.getIndexVersion();
@@ -722,6 +723,7 @@ public class PackWriter {
                else
                        iw = PackIndexWriter.createVersion(indexStream, indexVersion);
                iw.write(list, packcsum);
+               stats.timeWriting += System.currentTimeMillis() - writeStart;
        }
 
        private List<ObjectToPack> sortByName() {
@@ -828,6 +830,7 @@ public class PackWriter {
                stats.timeWriting = System.currentTimeMillis() - writeStart;
                stats.totalBytes = out.length();
                stats.reusedPacks = Collections.unmodifiableList(cachedPacks);
+               stats.depth = depth;
 
                for (Statistics.ObjectType typeStat : stats.objectTypes) {
                        if (typeStat == null)
@@ -1870,6 +1873,8 @@ public class PackWriter {
 
                Collection<CachedPack> reusedPacks;
 
+               int depth;
+
                int deltaSearchNonEdgeObjects;
 
                int deltasFound;
@@ -2012,6 +2017,16 @@ public class PackWriter {
                        return objectTypes[typeCode];
                }
 
+               /** @return true if the resulting pack file was a shallow pack. */
+               public boolean isShallow() {
+                       return depth > 0;
+               }
+
+               /** @return depth (in commits) the pack includes if shallow. */
+               public int getDepth() {
+                       return depth;
+               }
+
                /**
                 * @return time in milliseconds spent enumerating the objects that need
                 *         to be included in the output. This time includes any restarts
@@ -2060,6 +2075,15 @@ public class PackWriter {
                        return timeWriting;
                }
 
+               /** @return total time spent processing this pack. */
+               public long getTimeTotal() {
+                       return timeCounting
+                               + timeSearchingForReuse
+                               + timeSearchingForSizes
+                               + timeCompressing
+                               + timeWriting;
+               }
+
                /**
                 * @return get the average output speed in terms of bytes-per-second.
                 *         {@code getTotalBytes() / (getTimeWriting() / 1000.0)}.