]> source.dussan.org Git - jgit.git/commitdiff
Use 8192 as default buffer size in ObjectLoader copyTo 42/1542/1
authorShawn O. Pearce <spearce@spearce.org>
Mon, 6 Sep 2010 16:59:35 +0000 (09:59 -0700)
committerShawn O. Pearce <spearce@spearce.org>
Mon, 6 Sep 2010 17:09:12 +0000 (10:09 -0700)
As ObjectStreams are supposed to be buffered, most implementors will
be wrapping their underlying stream inside of a BufferedInputStream
in order to satisfy this requirement.  Because developers are by
nature lazy, they will use the default buffer size rather than
specify their own.

The OpenJDk JRE implementations use 8192 as the default buffer
size, and when the higher level reader uses the same buffer size
the buffers "stack" nicely by avoiding a copy to the internal
buffer array.  As OpenJDK is a popular virtual machine, we should
try to benefit from this nice stacking property during copyTo().

Change-Id: I69d53f273b870b841ced2be2e9debdfd987d98f4
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
org.eclipse.jgit/src/org/eclipse/jgit/lib/ObjectLoader.java

index 0fc3bce65bd1a96718a019c38afdec1d08f05b0e..fe4a7fdc0defbb91e0616636f8b2409330d3ee48 100644 (file)
@@ -256,7 +256,7 @@ public abstract class ObjectLoader {
                        ObjectStream in = openStream();
                        try {
                                final long sz = in.getSize();
-                               byte[] tmp = new byte[1024];
+                               byte[] tmp = new byte[8192];
                                long copied = 0;
                                while (copied < sz) {
                                        int n = in.read(tmp);