Class FastBufferedDataOutputStream

java.lang.Object
java.io.OutputStream
java.io.FilterOutputStream
org.apache.sysds.runtime.util.FastBufferedDataOutputStream
All Implemented Interfaces:
Closeable, DataOutput, Flushable, AutoCloseable, MatrixBlockDataOutput

public class FastBufferedDataOutputStream extends FilterOutputStream implements DataOutput, MatrixBlockDataOutput
This buffered output stream is essentially a merged version of BufferedOutputStream and DataOutputStream, wrt SystemDS requirements. Micro-benchmarks showed a 25% performance improvement for local write binary block due to the following advantages: - 1) unsynchronized buffered output stream (not required in SystemDS since single writer) - 2) single output buffer (avoid two-level buffers of individual streams) - 3) specific support for writing double arrays in a blockwise fashion