82 lines
1.6 KiB
Rust
82 lines
1.6 KiB
Rust
//! `-Zmiri-disable-isolation` needed to run these under miri
|
|
|
|
use test::{Bencher, black_box};
|
|
|
|
extern crate test;
|
|
|
|
use super::Vec;
|
|
use std::{vec::Vec as StdVec, fmt::Debug, mem};
|
|
|
|
#[bench]
|
|
#[ignore = "ignored for miri compat"]
|
|
fn std_push(b: &mut Bencher) {
|
|
let mut vec = StdVec::new();
|
|
|
|
b.iter(|| vec.push(black_box(5)));
|
|
|
|
black_box(vec);
|
|
}
|
|
|
|
#[bench]
|
|
#[ignore = "ignored for miri compat"]
|
|
fn dyn_push(b: &mut Bencher) {
|
|
let mut vec = Vec::new();
|
|
|
|
b.iter(|| vec.push(black_box(5)));
|
|
|
|
black_box(vec);
|
|
}
|
|
|
|
#[bench]
|
|
#[ignore = "ignored for miri compat"]
|
|
fn std_push_box(b: &mut Bencher) {
|
|
let mut vec = StdVec::new();
|
|
|
|
b.iter(|| vec.push(black_box(Box::new(5) as Box<dyn Debug>)));
|
|
|
|
black_box(vec);
|
|
}
|
|
|
|
#[bench]
|
|
#[ignore = "ignored for miri compat"]
|
|
fn dyn_push_unsize(b: &mut Bencher) {
|
|
let mut vec = Vec::new();
|
|
|
|
b.iter(|| vec.push_unsize_stable(black_box(5), |v| v as &dyn Debug));
|
|
|
|
black_box(vec);
|
|
}
|
|
|
|
#[bench]
|
|
#[ignore = "ignored for miri compat"]
|
|
fn dyn_push_box(b: &mut Bencher) {
|
|
let mut vec = Vec::new();
|
|
|
|
b.iter(|| vec.push_box(black_box(Box::new(5) as Box<dyn Debug>)));
|
|
|
|
black_box(vec);
|
|
}
|
|
|
|
#[bench]
|
|
#[ignore = "ignored for miri compat"]
|
|
fn dyn_push_then_unsize(b: &mut Bencher) {
|
|
let mut vec = Vec::new();
|
|
|
|
b.iter(|| vec.push(black_box(5)));
|
|
|
|
let vec = black_box(vec).unsize_stable(|v| v as &dyn Debug);
|
|
|
|
black_box(vec);
|
|
}
|
|
|
|
#[bench]
|
|
#[ignore = "ignored for miri compat"]
|
|
fn box_forget(b: &mut Bencher) {
|
|
b.iter(|| mem::forget(black_box(Box::new(5))));
|
|
}
|
|
|
|
#[bench]
|
|
#[ignore = "ignored for miri compat"]
|
|
fn box_dealloc(b: &mut Bencher) {
|
|
b.iter(|| drop(black_box(Box::new(5))));
|
|
} |