]>
git.proxmox.com Git - rustc.git/blob - vendor/scroll/benches/bench.rs
4 use scroll
::{Cread, Pread, LE}
;
8 fn bench_parallel_cread_with(b
: &mut test
::Bencher
) {
10 let vec
= vec
![0u8; 1_000_000];
11 let nums
= vec
![0usize
; 500_000];
13 let data
= black_box(&vec
[..]);
14 nums
.par_iter().for_each(| offset
| {
15 let _
: u16 = black_box(data
.cread_with(*offset
, LE
));
18 b
.bytes
= vec
.len() as u64;
22 fn bench_cread_vec(b
: &mut test
::Bencher
) {
23 let vec
= vec
![0u8; 1_000_000];
25 let data
= black_box(&vec
[..]);
26 for val
in data
.chunks(2) {
27 let _
: u16 = black_box(val
.cread_with(0, LE
));
30 b
.bytes
= vec
.len() as u64;
34 fn bench_cread(b
: &mut test
::Bencher
) {
35 const NITER
: i32 = 100_000;
38 let data
= black_box([1, 2]);
39 let _
: u16 = black_box(data
.cread(0));
42 b
.bytes
= 2 * NITER
as u64;
46 fn bench_pread_ctx_vec(b
: &mut test
::Bencher
) {
47 let vec
= vec
![0u8; 1_000_000];
49 let data
= black_box(&vec
[..]);
50 for val
in data
.chunks(2) {
51 let _
: Result
<u16, _
> = black_box(val
.pread(0));
54 b
.bytes
= vec
.len() as u64;
58 fn bench_pread_with_unwrap(b
: &mut test
::Bencher
) {
59 const NITER
: i32 = 100_000;
62 let data
: &[u8] = &black_box([1, 2]);
63 let _
: u16 = black_box(data
.pread_with(0, LE
).unwrap());
66 b
.bytes
= 2 * NITER
as u64;
70 fn bench_pread_vec(b
: &mut test
::Bencher
) {
71 let vec
= vec
![0u8; 1_000_000];
73 let data
= black_box(&vec
[..]);
74 for val
in data
.chunks(2) {
75 let _
: Result
<u16, _
> = black_box(val
.pread_with(0, LE
));
78 b
.bytes
= vec
.len() as u64;
82 fn bench_pread_unwrap(b
: &mut test
::Bencher
) {
83 const NITER
: i32 = 100_000;
86 let data
= black_box([1, 2]);
87 let _
: u16 = black_box(data
.pread(0)).unwrap();
90 b
.bytes
= 2 * NITER
as u64;
94 fn bench_gread_vec(b
: &mut test
::Bencher
) {
95 let vec
= vec
![0u8; 1_000_000];
97 let data
= black_box(&vec
[..]);
98 for val
in data
.chunks(2) {
100 let _
: Result
<u16, _
> = black_box(val
.gread(&mut offset
));
103 b
.bytes
= vec
.len() as u64;
107 fn bench_gread_unwrap(b
: &mut test
::Bencher
) {
108 const NITER
: i32 = 100_000;
111 let data
= black_box([1, 2]);
113 let _
: u16 = black_box(data
.gread_with(&mut offset
, LE
).unwrap());
116 b
.bytes
= 2 * NITER
as u64;
120 fn bench_parallel_pread_with(b
: &mut test
::Bencher
) {
121 use rayon
::prelude
::*;
122 let vec
= vec
![0u8; 1_000_000];
123 let nums
= vec
![0usize
; 500_000];
125 let data
= black_box(&vec
[..]);
126 nums
.par_iter().for_each(| offset
| {
127 let _
: Result
<u16, _
> = black_box(data
.pread_with(*offset
, LE
));
130 b
.bytes
= vec
.len() as u64;
134 fn bench_byteorder_vec(b
: &mut test
::Bencher
) {
135 use byteorder
::ReadBytesExt
;
136 let vec
= vec
![0u8; 1_000_000];
138 let data
= black_box(&vec
[..]);
139 for mut val
in data
.chunks(2) {
140 let _
: Result
<u16, _
> = black_box(val
.read_u16
::<byteorder
::LittleEndian
>());
143 b
.bytes
= vec
.len() as u64;
147 fn bench_byteorder(b
: &mut test
::Bencher
) {
148 use byteorder
::ByteOrder
;
149 const NITER
: i32 = 100_000;
152 let data
= black_box([1, 2]);
153 let _
: u16 = black_box(byteorder
::LittleEndian
::read_u16(&data
));
156 b
.bytes
= 2 * NITER
as u64;