Use black_box to tell the compiler not to optimize away test data

```
pub fn black_box<T>(dummy: T) -> T {
    unsafe {
        let ret = std::ptr::read_volatile(&dummy);
        std::mem::forget(dummy);
        ret
    }
}
```
This commit is contained in:
Greg Fitzgerald
2019-04-05 16:55:38 -06:00
parent 94653e70d7
commit 5610b8ee95

View File

@ -212,10 +212,7 @@ fn bench_account_serialize(bencher: &mut Bencher) {
});
// make sure compiler doesn't delete the code.
let index = thread_rng().gen_range(0, num);
if memory[index] != 0 {
println!("memory: {}", memory[index]);
}
let index = test::black_box(thread_rng().gen_range(0, num));
let start = index * ser_len;
let new_account = deserialize_account(&memory[start..start + ser_len], 0, num * len).unwrap();
@ -237,10 +234,7 @@ fn bench_account_serialize_bincode(bencher: &mut Bencher) {
});
// make sure compiler doesn't delete the code.
let index = thread_rng().gen_range(0, len);
if memory[index] != 0 {
println!("memory: {}", memory[index]);
}
let index = test::black_box(thread_rng().gen_range(0, num));
let start = index * len;
let new_account: Account = deserialize(&memory[start..start + len]).unwrap();