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