Speedup CleanFilter by transferring data in chunks of 8k
Transferring data byte per byte is slow, running add with CleanFilter on a 2.9MB file takes 20 seconds. Using a buffer of 8k shrinks this time to 70ms. Change-Id: I3bc2d8c11fe6cfaffcc99dc2a00643e01ac4e9cc Signed-off-by: Matthias Sohn <matthias.sohn@sap.com>
This commit is contained in:
parent
d1bc809cce
commit
6dea5ec823
|
@ -141,11 +141,12 @@ public CleanFilter(Repository db, InputStream in, OutputStream out)
|
||||||
|
|
||||||
public int run() throws IOException {
|
public int run() throws IOException {
|
||||||
try {
|
try {
|
||||||
int b = in.read();
|
byte[] buf = new byte[8192];
|
||||||
if (b != -1) {
|
int length = in.read(buf);
|
||||||
dOut.write(b);
|
if (length != -1) {
|
||||||
size++;
|
dOut.write(buf, 0, length);
|
||||||
return 1;
|
size += length;
|
||||||
|
return length;
|
||||||
} else {
|
} else {
|
||||||
dOut.close();
|
dOut.close();
|
||||||
tmpOut.close();
|
tmpOut.close();
|
||||||
|
|
Loading…
Reference in New Issue