]> git.proxmox.com Git - proxmox-backup.git/commitdiff
src/backup/chunk_stat.rs: log write speed
authorDietmar Maurer <dietmar@proxmox.com>
Mon, 25 Feb 2019 12:21:00 +0000 (13:21 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Mon, 25 Feb 2019 12:21:00 +0000 (13:21 +0100)
src/backup/chunk_stat.rs

index 4ce6ef9166eecfeb83de760c51ac891325743935..7ae66896c2b0f7602d3c63b08930130e69a3805d 100644 (file)
@@ -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)
     }
 }