org.eclipse.jgit.storage.pack
Class PackWriter.Statistics

java.lang.Object
  extended by org.eclipse.jgit.storage.pack.PackWriter.Statistics
Enclosing class:
PackWriter

public static class PackWriter.Statistics
extends Object

Summary of how PackWriter created the pack.


Nested Class Summary
static class PackWriter.Statistics.ObjectType
          Statistics about a single class of object.
 
Constructor Summary
PackWriter.Statistics()
           
 
Method Summary
 PackWriter.Statistics.ObjectType byObjectType(int typeCode)
           
 int getDeltaSearchNonEdgeObjects()
           
 int getDeltasFound()
           
 int getDepth()
           
 Set<ObjectId> getInterestingObjects()
           
 String getMessage()
           
 long getReusedDeltas()
           
 long getReusedObjects()
           
 Collection<CachedPack> getReusedPacks()
           
 long getThinPackBytes()
           
 long getTimeCompressing()
           
 long getTimeCounting()
           
 long getTimeSearchingForReuse()
           
 long getTimeSearchingForSizes()
           
 long getTimeTotal()
           
 long getTimeWriting()
           
 long getTotalBytes()
           
 long getTotalDeltas()
           
 long getTotalObjects()
           
 double getTransferRate()
           
 Set<ObjectId> getUninterestingObjects()
           
 boolean isShallow()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PackWriter.Statistics

public PackWriter.Statistics()
Method Detail

getInterestingObjects

public Set<ObjectId> getInterestingObjects()
Returns:
unmodifiable collection of objects to be included in the pack. May be null if the pack was hand-crafted in a unit test.

getUninterestingObjects

public Set<ObjectId> getUninterestingObjects()
Returns:
unmodifiable collection of objects that should be excluded from the pack, as the peer that will receive the pack already has these objects.

getReusedPacks

public Collection<CachedPack> getReusedPacks()
Returns:
unmodifiable collection of the cached packs that were reused in the output, if any were selected for reuse.

getDeltaSearchNonEdgeObjects

public int getDeltaSearchNonEdgeObjects()
Returns:
number of objects in the output pack that went through the delta search process in order to find a potential delta base.

getDeltasFound

public int getDeltasFound()
Returns:
number of objects in the output pack that went through delta base search and found a suitable base. This is a subset of getDeltaSearchNonEdgeObjects().

getTotalObjects

public long getTotalObjects()
Returns:
total number of objects output. This total includes the value of getTotalDeltas().

getTotalDeltas

public long getTotalDeltas()
Returns:
total number of deltas output. This may be lower than the actual number of deltas if a cached pack was reused.

getReusedObjects

public long getReusedObjects()
Returns:
number of objects whose existing representation was reused in the output. This count includes getReusedDeltas().

getReusedDeltas

public long getReusedDeltas()
Returns:
number of deltas whose existing representation was reused in the output, as their base object was also output or was assumed present for a thin pack. This may be lower than the actual number of reused deltas if a cached pack was reused.

getTotalBytes

public long getTotalBytes()
Returns:
total number of bytes written. This size includes the pack header, trailer, thin pack, and reused cached pack(s).

getThinPackBytes

public long getThinPackBytes()
Returns:
size of the thin pack in bytes, if a thin pack was generated. A thin pack is created when the client already has objects and some deltas are created against those objects, or if a cached pack is being used and some deltas will reference objects in the cached pack. This size does not include the pack header or trailer.

byObjectType

public PackWriter.Statistics.ObjectType byObjectType(int typeCode)
Parameters:
typeCode - object type code, e.g. OBJ_COMMIT or OBJ_TREE.
Returns:
information about this type of object in the pack.

isShallow

public boolean isShallow()
Returns:
true if the resulting pack file was a shallow pack.

getDepth

public int getDepth()
Returns:
depth (in commits) the pack includes if shallow.

getTimeCounting

public long getTimeCounting()
Returns:
time in milliseconds spent enumerating the objects that need to be included in the output. This time includes any restarts that occur when a cached pack is selected for reuse.

getTimeSearchingForReuse

public long getTimeSearchingForReuse()
Returns:
time in milliseconds spent matching existing representations against objects that will be transmitted, or that the client can be assumed to already have.

getTimeSearchingForSizes

public long getTimeSearchingForSizes()
Returns:
time in milliseconds spent finding the sizes of all objects that will enter the delta compression search window. The sizes need to be known to better match similar objects together and improve delta compression ratios.

getTimeCompressing

public long getTimeCompressing()
Returns:
time in milliseconds spent on delta compression. This is observed wall-clock time and does not accurately track CPU time used when multiple threads were used to perform the delta compression.

getTimeWriting

public long getTimeWriting()
Returns:
time in milliseconds spent writing the pack output, from start of header until end of trailer. The transfer speed can be approximated by dividing getTotalBytes() by this value.

getTimeTotal

public long getTimeTotal()
Returns:
total time spent processing this pack.

getTransferRate

public double getTransferRate()
Returns:
get the average output speed in terms of bytes-per-second. getTotalBytes() / (getTimeWriting() / 1000.0).

getMessage

public String getMessage()
Returns:
formatted message string for display to clients.


Copyright © 2013. All Rights Reserved.