]> git.proxmox.com Git - proxmox-backup.git/blob - examples/test_chunk_speed.rs
ui: drop id field from verify/sync add window
[proxmox-backup.git] / examples / test_chunk_speed.rs
1 extern crate proxmox_backup;
2
3 //use proxmox_backup::backup::chunker::*;
4 use proxmox_backup::backup::*;
5
6 fn main() {
7
8 let mut buffer = Vec::new();
9
10 for i in 0..20*1024*1024 {
11 for j in 0..4 {
12 let byte = ((i >> (j<<3))&0xff) as u8;
13 //println!("BYTE {}", byte);
14 buffer.push(byte);
15 }
16 }
17 let mut chunker = Chunker::new(64*1024);
18
19 let count = 5;
20
21 let start = std::time::SystemTime::now();
22
23 let mut chunk_count = 0;
24
25 for _i in 0..count {
26 let mut pos = 0;
27 let mut _last = 0;
28 while pos < buffer.len() {
29 let k = chunker.scan(&buffer[pos..]);
30 if k == 0 {
31 //println!("LAST {}", pos);
32 break;
33 } else {
34 _last = pos;
35 pos += k;
36 chunk_count += 1;
37 //println!("CHUNK {} {}", pos, pos-last);
38 }
39 }
40 }
41
42 let elapsed = start.elapsed().unwrap();
43 let elapsed = (elapsed.as_secs() as f64) +
44 (elapsed.subsec_millis() as f64)/1000.0;
45
46 let mbytecount = ((count*buffer.len()) as f64) / (1024.0*1024.0);
47 let avg_chunk_size = mbytecount/(chunk_count as f64);
48 let mbytes_per_sec = mbytecount/elapsed;
49 println!("SPEED = {} MB/s, avg chunk size = {} KB", mbytes_per_sec, avg_chunk_size*1024.0);
50 }