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