]> git.proxmox.com Git - proxmox-backup.git/blame - src/bin/test_chunk_speed.rs
src/backup.rs - improve doc
[proxmox-backup.git] / src / bin / test_chunk_speed.rs
CommitLineData
3329ae8c
DM
1extern crate proxmox_backup;
2
3use proxmox_backup::backup::chunker::*;
4
5fn main() {
6
7 let mut buffer = Vec::new();
8
ea4ea34b 9 for i in 0..20*1024*1024 {
3329ae8c
DM
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 }
ea4ea34b 16 let mut chunker = Chunker::new(64*1024);
3329ae8c 17
ea4ea34b 18 let count = 5;
3329ae8c
DM
19
20 let start = std::time::SystemTime::now();
ea4ea34b
DM
21
22 let mut chunk_count = 0;
3329ae8c
DM
23
24 for _i in 0..count {
25 let mut pos = 0;
9f49fe1d 26 let mut _last = 0;
3329ae8c
DM
27 while pos < buffer.len() {
28 let k = chunker.scan(&buffer[pos..]);
29 if k == 0 {
30 //println!("LAST {}", pos);
31 break;
32 } else {
9f49fe1d 33 _last = pos;
3329ae8c 34 pos += k;
ea4ea34b
DM
35 chunk_count += 1;
36 //println!("CHUNK {} {}", pos, pos-last);
3329ae8c
DM
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);
ea4ea34b 46 let avg_chunk_size = mbytecount/(chunk_count as f64);
3329ae8c 47 let mbytes_per_sec = mbytecount/elapsed;
ea4ea34b 48 println!("SPEED = {} MB/s, avg chunk size = {} KB", mbytes_per_sec, avg_chunk_size*1024.0);
3329ae8c 49}