From 8eb1203bda507599850afde89c91b6ee143e97c4 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Mon, 25 Feb 2019 13:21:00 +0100 Subject: [PATCH] src/backup/chunk_stat.rs: log write speed --- src/backup/chunk_stat.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/backup/chunk_stat.rs b/src/backup/chunk_stat.rs index 4ce6ef91..7ae66896 100644 --- a/src/backup/chunk_stat.rs +++ b/src/backup/chunk_stat.rs @@ -5,6 +5,8 @@ pub struct ChunkStat { pub chunk_count: usize, pub duplicate_chunks: usize, + + start_time: std::time::SystemTime, } impl ChunkStat { @@ -17,6 +19,8 @@ impl ChunkStat { chunk_count: 0, duplicate_chunks: 0, + + start_time: std::time::SystemTime::now(), } } } @@ -26,7 +30,14 @@ impl std::fmt::Debug for ChunkStat { let avg = ((self.size as f64)/(self.chunk_count as f64)) as usize; let compression = (self.compressed_size*100)/(self.size as u64); let rate = (self.disk_size*100)/(self.size as u64); - write!(f, "Size: {}, average chunk size: {}, compression rate: {}%, disk_size: {} ({}%)", - self.size, avg, compression, self.disk_size, rate) + + let elapsed = self.start_time.elapsed().unwrap(); + let elapsed = (elapsed.as_secs() as f64) + + (elapsed.subsec_millis() as f64)/1000.0; + + let write_speed = ((self.size as f64)/(1024.0*1024.0))/elapsed; + + write!(f, "Size: {}, average chunk size: {}, compression rate: {}%, disk_size: {} ({}%), speed: {:.2} MB/s", + self.size, avg, compression, self.disk_size, rate, write_speed) } }