#![cfg(all(test, feature = "nightly"))]
#![feature(test)]
extern crate stackvec;
use ::stackvec::prelude::*;
extern crate test;
use ::test::{
Bencher,
};
#[bench]
fn stackvec_extend_by_ref (benchmark: &mut Bencher)
{
benchmark.iter(|| {
for n in 0 .. (0x400 - 8) {
let mut vec = StackVec::<[_; 0x400]>::new();
vec.extend(
Iterator::chain(
(0 .. n).map(|x| x * x),
b"StackVec".iter().map(|&b| b as u16),
)
.by_ref()
);
}
});
}
#[bench]
fn vec_extend_by_ref (benchmark: &mut Bencher)
{
benchmark.iter(|| {
for n in 0 .. (0x400 - 8) {
let mut vec = Vec::with_capacity(0x400);
vec.extend(
Iterator::chain(
(0 .. n).map(|x| x * x),
b"StackVec".iter().map(|&b| b as u16),
)
.by_ref()
);
}
});
}
#[bench]
fn stackvec_extend (benchmark: &mut Bencher)
{
benchmark.iter(|| {
for n in 0 .. (0x400 - 8) {
let mut vec = StackVec::<[_; 0x400]>::new();
vec.extend(
Iterator::chain(
(0 .. n).map(|x| x * x),
b"StackVec".iter().map(|&b| b as u16),
)
);
}
});
}
#[bench]
fn vec_extend (benchmark: &mut Bencher)
{
benchmark.iter(|| {
for n in 0 .. (0x400 - 8) {
let mut vec = Vec::with_capacity(0x400);
vec.extend(
Iterator::chain(
(0 .. n).map(|x| x * x),
b"StackVec".iter().map(|&b| b as u16),
)
);
}
});
}
#[bench]
fn stackvec_from_iter (benchmark: &mut Bencher)
{
benchmark.iter(|| {
for n in 0 .. (0x400 - 8) {
let _vec = StackVec::<[_; 0x400]>::from_iter(
Iterator::chain(
(0 .. n).map(|x| x * x),
b"StackVec".iter().map(|&b| b as u16),
)
);
}
});
}
#[bench]
fn vec_from_iter (benchmark: &mut Bencher)
{
benchmark.iter(|| {
for n in 0 .. (0x400 - 8) {
let _vec = Vec::from_iter(
Iterator::chain(
(0 .. n).map(|x| x * x),
b"StackVec".iter().map(|&b| b as u16),
)
);
}
});
}
#[bench]
fn array_from_iter (benchmark: &mut Bencher)
{
benchmark.iter(|| {
for n in 0 .. (0x400 - 8) {
let _array = <[_; 0x400]>::try_from_iter(
Iterator::chain(
(0 .. n).map(|x| x * x),
b"StackVec".iter().map(|&b| b as u16),
)
);
}
});
}