]>
Commit | Line | Data |
---|---|---|
3329ae8c DM |
1 | extern crate proxmox_backup; |
2 | ||
e5064ba6 DM |
3 | //use proxmox_backup::backup::chunker::*; |
4 | use proxmox_backup::backup::*; | |
3329ae8c DM |
5 | |
6 | fn 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 | } |