From 7b70da2873b30b112a084df7d8d6d87e837f78b3 Mon Sep 17 00:00:00 2001 From: Diggory Hardy Date: Tue, 6 Mar 2018 18:11:54 +0000 Subject: [PATCH] Add benchmarks: generate 1k block --- benches/misc.rs | 54 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 53 insertions(+), 1 deletion(-) diff --git a/benches/misc.rs b/benches/misc.rs index 42517617662..6c11c57673c 100644 --- a/benches/misc.rs +++ b/benches/misc.rs @@ -5,7 +5,7 @@ extern crate rand; use test::{black_box, Bencher}; -use rand::{Rng, weak_rng}; +use rand::{Rng, RngCore, weak_rng}; use rand::seq::*; #[bench] @@ -60,3 +60,55 @@ macro_rules! sample_indices { sample_indices!(misc_sample_indices_10_of_1k, 10, 1000); sample_indices!(misc_sample_indices_50_of_1k, 50, 1000); sample_indices!(misc_sample_indices_100_of_1k, 100, 1000); + +#[bench] +fn gen_1k_iter_repeat(b: &mut Bencher) { + use std::iter; + let mut rng = weak_rng(); + b.iter(|| { + let v: Vec = iter::repeat(()).map(|()| rng.next_u32()).take(256).collect(); + black_box(v); + }); + b.bytes = 1024; +} + +#[bench] +fn gen_1k_gen_iter(b: &mut Bencher) { + let mut rng = weak_rng(); + b.iter(|| { + let v: Vec = rng.gen_iter().take(256).collect(); + black_box(v); + }); + b.bytes = 1024; +} + +#[bench] +fn gen_1k_iter1(b: &mut Bencher) { + let mut rng = weak_rng(); + b.iter(|| { + let v: Vec = rng.iter().take(256).map(|rng| rng.next_u32()).collect(); + black_box(v); + }); + b.bytes = 1024; +} + +#[bench] +fn gen_1k_iter2(b: &mut Bencher) { + let mut rng = weak_rng(); + b.iter(|| { + let v: Vec = rng.iter().map(|rng| rng.next_u32()).take(256).collect(); + black_box(v); + }); + b.bytes = 1024; +} + +#[bench] +fn gen_1k_fill(b: &mut Bencher) { + let mut rng = weak_rng(); + let mut buf = [0u32; 256]; + b.iter(|| { + rng.fill(&mut buf[..]); + black_box(buf); + }); + b.bytes = 1024; +}