Advertisement
Guest User

Untitled

a guest
Jul 13th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 2.94 KB | None | 0 0
  1. running 1 test
  2. Benchmarking Base64 auto
  3. Benchmarking Base64 auto: Warming up for 3.0000 s
  4. Benchmarking Base64 auto: Collecting 100 samples in estimated 5.0999 s (237k iterations)
  5. Benchmarking Base64 auto: Analyzing
  6. Base64 auto             time:   [21.400 us 21.481 us 21.573 us]
  7.                         change: [-0.7790% +0.1404% +0.9293%] (p = 0.76 > 0.05)
  8.                         No change in performance detected.
  9. Found 1 outliers among 100 measurements (1.00%)
  10.   1 (1.00%) high mild
  11.  
  12. Benchmarking Base64 non-auto
  13. Benchmarking Base64 non-auto: Warming up for 3.0000 s
  14. Benchmarking Base64 non-auto: Collecting 100 samples in estimated 8.0379 s (5050 iterations)
  15. Benchmarking Base64 non-auto: Analyzing
  16. Base64 non-auto         time:   [1.6213 ms 1.6754 ms 1.7349 ms]
  17.                         change: [-0.7231% +1.3173% +3.6913%] (p = 0.25 > 0.05)
  18.                         No change in performance detected.
  19. Found 16 outliers among 100 measurements (16.00%)
  20.   5 (5.00%) high mild
  21.   11 (11.00%) high severe
  22.  
  23. test test::tests::benchmark ... ok
  24.  
  25. test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out
  26.  
  27.  
  28.  
  29. [code]
  30. fn base64_auto(c: &mut Criterion) {
  31.     let len = 1000;
  32.     let ref_vec = {
  33.         let mut tmp = Vec::<u8>::new();
  34.         tmp.resize(len, 10);
  35.         tmp
  36.     };
  37.  
  38.     c.bench_function("Base64 auto",  move |b| b.iter(|| {
  39.         let mut vec = BytesMut::with_capacity(len*10);
  40.         let mut ret_vec = BytesMut::with_capacity(len*10);
  41.  
  42.         vec.resize(len*10, 10);
  43.         ret_vec.resize(len*10, 0);
  44.  
  45.         let bytes_encoded = base64::encode_config_slice(&ref_vec, base64::STANDARD, &mut vec[..len*10]);
  46.  
  47.         vec.truncate(bytes_encoded);
  48.  
  49.         let bytes_decoded = base64::decode_config_bytes_auto(&mut vec, base64::STANDARD).unwrap();
  50.  
  51.         //vec.truncate() is done implicitly inside the custom decode function
  52.  
  53.         assert_eq!(bytes_decoded, len);
  54.         assert_eq!(vec, ref_vec);
  55.     }));
  56. }
  57.  
  58.  
  59. fn base64_non_auto(c: &mut Criterion) {
  60.     let len = 1000;
  61.     let ref_vec = {
  62.         let mut tmp = Vec::<u8>::new();
  63.         tmp.resize(len, 10);
  64.         tmp
  65.     };
  66.  
  67.     c.bench_function("Base64 non-auto",  move |b| b.iter(|| {
  68.         let mut vec = Vec::<u8>::with_capacity(len*10);
  69.         let mut ret_vec = Vec::<u8>::with_capacity(len*10);
  70.  
  71.         vec.resize(len*10, 10);
  72.         ret_vec.resize(len*10, 0);
  73.  
  74.         let bytes_encoded = base64::encode_config_slice(&ref_vec, base64::STANDARD, &mut vec);
  75.  
  76.         vec.truncate(bytes_encoded);
  77.  
  78.         let bytes_decoded = base64::decode_config_slice(&vec, base64::STANDARD, &mut ret_vec[0..len*10]).unwrap();
  79.  
  80.         ret_vec.truncate(bytes_decoded);
  81.  
  82.         assert_eq!(bytes_decoded, len);
  83.         assert_eq!(ret_vec, ref_vec);
  84.     }));
  85. }
  86.  
  87. ///Main function
  88. fn criterion_benchmark(c: &mut Criterion) {
  89.     //c.bench_function("fib 20", |b| b.iter(|| fibonacci(black_box(20))));
  90.     base64_auto(c);
  91.     base64_non_auto(c);
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement