I'm optimizing for performance, and using the snap decoder to validate a snappy file.
Is there a point to buffer io::sink
for performance?
let mut src = snap::read::FrameDecoder::new(src);
// use a 1mb buffered sink
let mut buffered_sink = io::BufWriter::with_capacity(1_048_576, io::sink());
match io::copy(&mut src, &mut buffered_sink) {
Ok(decompressed_bytes) => {
buffered_sink.flush()?;
Ok(decompressed_bytes)
}
Err(err) => fail_clierror!("Error validating snappy file: {err:?}"),
}
instead of just:
let mut src = snap::read::FrameDecoder::new(src);
let mut sink = io::sink();
match io::copy(&mut src, &mut sink) {
Ok(decompressed_bytes) => Ok(decompressed_bytes)
Err(err) => fail_clierror!("Error validating snappy file: {err:?}"),
}