diff options
| author | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2014-07-05 22:31:57 -0700 |
|---|---|---|
| committer | Erick Tryzelaar <erick.tryzelaar@gmail.com> | 2014-07-05 23:11:21 -0700 |
| commit | 90fe1a632bd38633006ea53f92a1da14944fd835 (patch) | |
| tree | 3d9b8aab9a6502041553817cb8fe75d8a4e56ce8 /src/libstd/io | |
| parent | f1ea540e9024db9b5d2e6a6e92431875feb345b3 (diff) | |
| download | rust-90fe1a632bd38633006ea53f92a1da14944fd835.tar.gz rust-90fe1a632bd38633006ea53f92a1da14944fd835.zip | |
std: flesh out MemWriter benchmarks
Diffstat (limited to 'src/libstd/io')
| -rw-r--r-- | src/libstd/io/mem.rs | 54 |
1 files changed, 49 insertions, 5 deletions
diff --git a/src/libstd/io/mem.rs b/src/libstd/io/mem.rs index 3443a85b468..e2500fd00be 100644 --- a/src/libstd/io/mem.rs +++ b/src/libstd/io/mem.rs @@ -607,18 +607,62 @@ mod test { assert_eq!(buf.as_slice(), &[7, 8, 6]); } - #[bench] - fn bench_mem_writer(b: &mut Bencher) { + fn do_bench_mem_writer(b: &mut Bencher, times: uint, len: uint) { + let src: Vec<u8> = Vec::from_elem(len, 5); + b.iter(|| { let mut wr = MemWriter::new(); - for _i in range(0u, 10) { - wr.write([5, .. 10]).unwrap(); + for _ in range(0, times) { + wr.write(src.as_slice()).unwrap(); } - assert_eq!(wr.unwrap().as_slice(), [5, .. 100].as_slice()); + + let v = wr.unwrap(); + assert_eq!(v.len(), times * len); + assert!(v.iter().all(|x| *x == 5)); }); } #[bench] + fn bench_mem_writer_001_0000(b: &mut Bencher) { + do_bench_mem_writer(b, 1, 0) + } + + #[bench] + fn bench_mem_writer_001_0010(b: &mut Bencher) { + do_bench_mem_writer(b, 1, 10) + } + + #[bench] + fn bench_mem_writer_001_0100(b: &mut Bencher) { + do_bench_mem_writer(b, 1, 100) + } + + #[bench] + fn bench_mem_writer_001_1000(b: &mut Bencher) { + do_bench_mem_writer(b, 1, 1000) + } + + #[bench] + fn bench_mem_writer_100_0000(b: &mut Bencher) { + do_bench_mem_writer(b, 100, 0) + } + + #[bench] + fn bench_mem_writer_100_0010(b: &mut Bencher) { + do_bench_mem_writer(b, 100, 10) + } + + #[bench] + fn bench_mem_writer_100_0100(b: &mut Bencher) { + do_bench_mem_writer(b, 100, 100) + } + + #[bench] + fn bench_mem_writer_100_1000(b: &mut Bencher) { + do_bench_mem_writer(b, 100, 1000) + } + + #[bench] fn bench_mem_reader(b: &mut Bencher) { b.iter(|| { let buf = Vec::from_slice([5 as u8, ..100]); |
