Skip to content

Commit

Permalink
feat: Allow using a Rc pointers instead of Arc in Vector
Browse files Browse the repository at this point in the history
  • Loading branch information
Markus Westerlind authored and Marwes committed Mar 9, 2018
1 parent e8f22bf commit 7b1ad04
Show file tree
Hide file tree
Showing 3 changed files with 314 additions and 111 deletions.
33 changes: 33 additions & 0 deletions benches/rpds_vector.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ extern crate rpds;

mod utils;

use std::rc::Rc;

use rpds::Vector;
use rpds::sequence::vector::SharedVector;
use utils::BencherNoDrop;
use utils::iterations;
use bencher::{black_box, Bencher};
Expand All @@ -30,6 +33,20 @@ fn vector_push_back(bench: &mut Bencher) -> () {
});
}

fn vector_push_back_rc(bench: &mut Bencher) -> () {
let limit = iterations(100_000);

bench.iter_no_drop(|| {
let mut vector: SharedVector<usize, Rc<()>> = SharedVector::new();

for i in 0..limit {
vector = vector.push_back(i);
}

vector
});
}

fn vector_push_back_mut(bench: &mut Bencher) -> () {
let limit = iterations(100_000);

Expand All @@ -44,6 +61,20 @@ fn vector_push_back_mut(bench: &mut Bencher) -> () {
});
}

fn vector_push_back_mut_rc(bench: &mut Bencher) -> () {
let limit = iterations(100_000);

bench.iter_no_drop(|| {
let mut vector: SharedVector<usize, Rc<()>> = SharedVector::new();

for i in 0..limit {
vector.push_back_mut(i);
}

vector
});
}

fn vector_drop_last(bench: &mut Bencher) -> () {
let limit = iterations(100_000);
let mut full_vector: Vector<usize> = Vector::new();
Expand Down Expand Up @@ -115,7 +146,9 @@ fn vector_iterate(bench: &mut Bencher) -> () {
benchmark_group!(
benches,
vector_push_back,
vector_push_back_rc,
vector_push_back_mut,
vector_push_back_mut_rc,
vector_drop_last,
vector_drop_last_mut,
vector_get,
Expand Down
Loading

0 comments on commit 7b1ad04

Please sign in to comment.