From f68ff03d06a489114989b501e7e82cba1525f99e Mon Sep 17 00:00:00 2001 From: bnewbold Date: Fri, 3 Jun 2016 01:16:08 -0400 Subject: optimize by increasing CHUNK_SIZE to 16KB (from 4KB) --- src/common.rs | 6 ++++-- src/crypto.rs | 5 +++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/common.rs b/src/common.rs index facd527..1900385 100644 --- a/src/common.rs +++ b/src/common.rs @@ -13,6 +13,8 @@ fn fake_io_error(msg: &str) -> io::Result<()> { Err(io::Error::new(io::ErrorKind::Other, msg)) } +const CHUNK_SIZE: usize = 1024*16; + pub fn source_files(stream: &mut S, file_path: &str, recursive: bool) -> io::Result<()> { println!("SOURCE FILE: {}", file_path); if recursive { unimplemented!(); } @@ -38,7 +40,7 @@ pub fn source_files(stream: &mut S, file_path: &str, recursive: _ => { return fake_io_error("Unexpected status char!"); }, }; - let mut buf = [0; 4096]; + let mut buf = [0; CHUNK_SIZE]; let mut sent: usize = 0; while sent < flen { let rlen = try!(f.read(&mut buf)); @@ -83,7 +85,7 @@ pub fn sink_files(stream: &mut S, file_path: &str, recursive: b let mut f = try!(File::create(file_path)); let mut byte_buf = [0; 1]; - let mut buf = [0; 4096]; + let mut buf = [0; CHUNK_SIZE]; try!(stream.read_exact(&mut byte_buf)); let msg_type = byte_buf[0]; match msg_type as char { diff --git a/src/crypto.rs b/src/crypto.rs index d6b65be..da0a770 100644 --- a/src/crypto.rs +++ b/src/crypto.rs @@ -9,13 +9,14 @@ use rustc_serialize::base64::{ToBase64, FromBase64, STANDARD}; use std::mem::transmute; // TODO: handle case of splitting up writes > 2^32 bytes into multiple small writes +const CHUNK_SIZE: usize = 1024*64; pub struct SecretStream { pub read_nonce: Nonce, pub write_nonce: Nonce, pub key: Key, inner: S, - read_buf: [u8; 4096+1024], + read_buf: [u8; CHUNK_SIZE+512], read_buf_offset: usize, read_buf_len: usize, } @@ -27,7 +28,7 @@ impl SecretStream { read_nonce: secretbox::gen_nonce(), write_nonce: secretbox::gen_nonce(), key: secretbox::gen_key(), - read_buf: [0; 4096+1024], + read_buf: [0; CHUNK_SIZE+512], read_buf_offset: 0, read_buf_len: 0, } -- cgit v1.2.3