Fix performance issues of sop armor and dearmor operations
This commit is contained in:
parent
57fbb469ea
commit
9cdea63ec4
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
package org.pgpainless.sop;
|
package org.pgpainless.sop;
|
||||||
|
|
||||||
|
import java.io.BufferedOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
@ -28,8 +29,11 @@ public class ArmorImpl implements Armor {
|
||||||
return new Ready() {
|
return new Ready() {
|
||||||
@Override
|
@Override
|
||||||
public void writeTo(OutputStream outputStream) throws IOException {
|
public void writeTo(OutputStream outputStream) throws IOException {
|
||||||
ArmoredOutputStream armor = ArmoredOutputStreamFactory.get(outputStream);
|
// By buffering the output stream, we can improve performance drastically
|
||||||
|
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream);
|
||||||
|
ArmoredOutputStream armor = ArmoredOutputStreamFactory.get(bufferedOutputStream);
|
||||||
Streams.pipeAll(data, armor);
|
Streams.pipeAll(data, armor);
|
||||||
|
bufferedOutputStream.flush();
|
||||||
armor.close();
|
armor.close();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
package org.pgpainless.sop;
|
package org.pgpainless.sop;
|
||||||
|
|
||||||
|
import java.io.BufferedOutputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
|
@ -22,7 +23,9 @@ public class DearmorImpl implements Dearmor {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void writeTo(OutputStream outputStream) throws IOException {
|
public void writeTo(OutputStream outputStream) throws IOException {
|
||||||
Streams.pipeAll(decoder, outputStream);
|
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(outputStream);
|
||||||
|
Streams.pipeAll(decoder, bufferedOutputStream);
|
||||||
|
bufferedOutputStream.flush();
|
||||||
decoder.close();
|
decoder.close();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue