Skip to content

Instantly share code, notes, and snippets.

@ljedrz

ljedrz/main.rs Secret

Created October 17, 2018 17:38
Pop loop vs. truncate
#![feature(test)]
extern crate test;
use test::Bencher;
fn pop_loop(n: usize) -> Vec<usize> {
let mut vec = (0..100).collect::<Vec<_>>();
for _ in 0..n {
vec.pop();
}
vec
}
fn truncating(n: usize) -> Vec<usize> {
let mut vec = (0..100).collect::<Vec<_>>();
let l = vec.len();
vec.truncate(l - n);
vec
}
#[bench]
fn bench_pop_loop(b: &mut Bencher) {
let n = test::black_box(50);
b.iter(|| pop_loop(n) )
}
#[bench]
fn bench_truncating(b: &mut Bencher) {
let n = test::black_box(50);
b.iter(|| truncating(n) )
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment