~mht/cmr

c3640b46e5142675c3fed0859383bcc552d306e2 — Martin Hafskjold Thoresen 3 years ago 145f4bd
Benchmarking stuff.

Just check in raw data, generated PDfs, scripts, everything >:)
M Cargo.toml => Cargo.toml +2 -0
@@ 11,6 11,7 @@ tid = "*"
parking_lot = { version = "*", features = ["nightly"] }
jemallocator = "=0.1.9"
jemalloc-free-hack = { path = "./jemalloc-free-hack" }
hashbrown = "0.1"

[dependencies.libc]
git = "https://github.com/martinhath/libc"


@@ 42,4 43,5 @@ members = [
  "extern-benchmarks",
  "jemalloc-free-hack",
  "crossbeam-skiporder",
  "cycle-count-benchs",
]

M Makefile => Makefile +1 -1
@@ 1,4 1,4 @@
HOSTS = $(shell hostname)
HOSTS = $(shell hostname) dasquad
HM_OPS = insert 80-10-10 contains remove
Q_OPS = push pop 50-50
THREADS = 1 2 4 6 8

M benchmarks/src/main.rs => benchmarks/src/main.rs +35 -14
@@ 22,6 22,15 @@ macro_rules! S {
    }
}

fn get_rng() -> rand::rngs::SmallRng {
    use rand::SeedableRng;
    let seed = [
        0,1,2,3,4,5,6,7,
        0,1,2,3,4,5,6,7
    ];
    rand::rngs::SmallRng::from_seed(seed)
}

fn duration() -> Duration {
    Duration::new(3, 0)
}


@@ 54,7 63,7 @@ fn fmt_thousands_sep(mut n: u64) -> String {
/// since we can generate keys before starting the benchmark, and then have the state keep track
/// over which numbers we've used up.
#[derive(Clone)]
struct RandomSource<T>(std::iter::Cycle<std::vec::IntoIter<T>>);
struct RandomSource<T>(pub std::iter::Cycle<std::vec::IntoIter<T>>);

impl<T: Clone> Default for RandomSource<T> {
    fn default() -> Self {


@@ 70,7 79,7 @@ impl<T: Copy> RandomSource<T> {

impl<T: Clone> RandomSource<T> {
    fn gen_n_with<F: Fn(u64) -> T>(&mut self, n: usize, f: F) {
        let mut rng = rand::thread_rng();
        let mut rng = get_rng();
        let mut v = Vec::new();
        for _ in 0..n {
            v.push(f(rng.gen::<u64>()));


@@ 81,7 90,7 @@ impl<T: Clone> RandomSource<T> {

impl<T: From<u64> + Clone> RandomSource<T> {
    fn gen_n(&mut self, n: usize) {
        let mut rng = rand::thread_rng();
        let mut rng = get_rng();
        let mut v = Vec::new();
        for _ in 0..n {
            v.push(rng.gen::<u64>().into());


@@ 92,7 101,7 @@ impl<T: From<u64> + Clone> RandomSource<T> {

fn gen_hm_80_10_10(n: usize) -> RandomSource<HmOp<u64>> {
    let mut q = std::collections::VecDeque::new();
    let mut rng = rand::thread_rng();
    let mut rng = get_rng();
    let mut v = Vec::new();
    for _ in 0..n {
        let op = match HmOp::make_80_10_10(rng.gen()) {


@@ 109,7 118,7 @@ fn gen_hm_80_10_10(n: usize) -> RandomSource<HmOp<u64>> {
}

fn gen_n_perm(n: usize) -> RandomSource<u64> {
    let mut rng = rand::thread_rng();
    let mut rng = get_rng();
    let mut v = (0..n as u64).collect::<Vec<_>>();
    rng.shuffle(&mut v);
    RandomSource(v.into_iter().cycle())


@@ 390,7 399,11 @@ fn hashmap_insert(num_threads: usize) {

fn hashmap_contains(num_threads: usize) {
    fn func(state: &HmState, local: &mut RandomSource<u64>) {
        let ret = state.hashmap.contains(&local.next());
        let n = local.next();
        let ret = state.hashmap.contains(&n);
        if ret {
            assert!((n & 1) == 1);
        }
        trench::black_box(ret);
    }



@@ 400,9 413,9 @@ fn hashmap_contains(num_threads: usize) {
        l.gen_n(10_000_000);
    });
    b.with_global_state(move |g| {
        let mut rng = rand::thread_rng();
        let mut rng = get_rng();
        for i in 0..(1_000_000 / num_threads as u64) {
            g.hashmap.insert(rng.gen(), i);
            g.hashmap.insert(rng.gen::<u64>() | 1, i);
        }
    });
    let res = b.run_for(duration(), func);


@@ 414,24 427,32 @@ fn hashmap_contains(num_threads: usize) {
}

fn hashmap_remove(num_threads: usize) {
    use std::sync::atomic::Ordering;
    fn func(state: &HmState, local: &mut RandomSource<u64>) {
        let ret = state.hashmap.remove(&local.next());
        trench::black_box(ret);
    }

    let b = trench::TimedBench::<HmState, RandomSource<u64>>::with_threads(num_threads);
    b.with_local_state(|l| {
        cmr::thread_activate();
        *l = gen_n_perm(40_000_000);
    });
    b.with_global_state(move |g| {
        let mut rng = rand::thread_rng();
        for _ in 0..(10_000_000 / num_threads as u64) {
            let n = rng.gen::<u64>() % 40_000_000;
            g.hashmap.insert(n, n);
    b.with_global_state_current_thread(move |g| {
        let n = 40_000_000;
        let mut rng = get_rng();
        let mut v = (0..n as u64).collect::<Vec<_>>();
        println!("Shuffling {} numbers!", n);
        rng.shuffle(&mut v);
        println!("done shuffling");
        for &i in &v {
            g.hashmap.insert(i, i)
        }
        println!("Done inserting all {} numbers.", n);
    });
    let res = b.run_for(duration(), func);
    b.with_local_state(|_| cmr::thread_deactivate());
    b.with_global_state(|s| println!("after running hashmap.count = {}", s.hashmap.count.load(Ordering::SeqCst)));
    println!(
        "cmr::HashMap\tremove\t{} ops/sec",
        fmt_thousands_sep(res.ops_per_sec)


@@ 458,7 479,7 @@ fn hashmap_80_10_10(num_threads: usize) {
        *l = gen_hm_80_10_10(10_000_000);
    });
    b.with_global_state(move |s| {
        let mut rng = rand::thread_rng();
        let mut rng = get_rng();
        for i in 0..(1_000_000 / num_threads as u64) {
            s.hashmap.insert(rng.gen(), i);
        }

M cargo-bench-filter => cargo-bench-filter +1 -1
@@ 1,4 1,4 @@
#!/bin/awk -f
#!/usr/bin/awk -f

/^test bench.*FAILED/ {
  fails[$0] = $2;

A cycle-count-benchs/Cargo.toml => cycle-count-benchs/Cargo.toml +21 -0
@@ 0,0 1,21 @@
[package]
name = "cycle-count-benchs"
version = "0.1.0"
authors = ["Martin Hafskjold Thoresen <git@mht.technology>"]

[[bin]]
name = "cmr"
path = "src/cmr.rs"

[[bin]]
name = "cb"
path = "src/cb.rs"


[dependencies]
cmr = { path = "../" }
cmr-data-structures = { path = "../data-structures" }
crossbeam-skiporder = { path = "../crossbeam-skiporder" }
crossbeam-skiplist = { path = "../extern-benchmarks/crossbeam-skiplist" }
crossbeam-epoch = { path = "../extern-benchmarks/crossbeam-epoch" }
rand = "0.5"

A cycle-count-benchs/run.sh => cycle-count-benchs/run.sh +19 -0
@@ 0,0 1,19 @@
#!/bin/bash

PERF_COUNTERS="cpu-clock,cycles,instructions,branch-instructions,branch-misses,cache-misses"
PERF="perf stat -i -e $PERF_COUNTERS"

cargo build --release --bin cb
cp ../target/release/cb cb
cargo build --release --bin cmr
cp ../target/release/cmr cmr


echo -e "\n\n###############################\nOverhead:\n"
$PERF ./cb id
echo -e "\n\n###############################\nCMR Skiporder:\n"
$PERF ./cmr
echo -e "\n\n###############################\nCrossbeam Skiplist:\n"
$PERF ./cb cb
echo -e "\n\n###############################\nCrossbeam Skiporder:\n"
$PERF ./cb cbo

A cycle-count-benchs/src/cb.rs => cycle-count-benchs/src/cb.rs +44 -0
@@ 0,0 1,44 @@
#![feature(asm)]

extern crate crossbeam_skiporder;
extern crate crossbeam_skiplist;
extern crate crossbeam_epoch;
extern crate rand;

mod common;
use common::*;

fn main() {
    #[cfg(debug_assertions)]
    panic!("You are running a benchmark without optimizations. Please don't.");
    let mut args = std::env::args();
    let option = match args.nth(1) {
        None => { panic!("Missing argument to choose which option we're running") }
        Some(arg) => arg,
    };
    use std::ops::Deref;
    match option.deref() {
        "cbo" => {
            let h = crossbeam_skiporder::HashMap::<usize, usize>::new();
            run(|i| {
                let g = &crossbeam_epoch::pin();
                let b = h.contains(&i, g);
                h.insert(2 * i, 2 * i, g);
                b
            });
        }
        "cb" => {
            let h = crossbeam_skiplist::SkipList::<usize, usize>::new(crossbeam_epoch::default_collector().clone());
            run(|i| {
                let g = &crossbeam_epoch::pin();
                let b = h.get(&i, g).is_some();
                h.insert(2 * i, 2 * i, g);
                b
            });
        }
        "id" => {
            run(|i| i);
        }
        _ => { panic!("Expected 'id', 'cbo', or 'cb'") }
    }
}

A cycle-count-benchs/src/cmr.rs => cycle-count-benchs/src/cmr.rs +21 -0
@@ 0,0 1,21 @@
#![feature(asm)]

extern crate cmr;
extern crate cmr_data_structures;
extern crate rand;

mod common;
use common::*;

fn main() {
    #[cfg(debug_assertions)]
    panic!("You are running a benchmark without optimizations. Please don't.");
    cmr::global_init();
    cmr::thread_activate();
    let h = cmr_data_structures::hashmap::HashMap::<usize, usize>::new();
    run(|i| {
        let b = h.contains(&i);
        h.insert(2 * i, 2 * i);
        b
    });
}

A cycle-count-benchs/src/common.rs => cycle-count-benchs/src/common.rs +22 -0
@@ 0,0 1,22 @@
use rand::{SeedableRng, Rng};
use rand::rngs::SmallRng;

const N: usize = 1_000_000;

fn black_box<T>(dummy: T) -> T {
    // we need to "use" the argument in some way LLVM can't introspect.
    unsafe { asm!("" : : "r"(&dummy)) }
    dummy
}


pub fn run<R, F: Fn(usize) -> R>(f: F) {
    let mut rng = SmallRng::from_seed([
        0,1,2,3,4,5,6,7,
        0,1,2,3,4,5,6,7
    ]);
    let nums = (0..N).map(|_| rng.gen::<usize>()).collect::<Vec<_>>();
    for i in 0..N {
        black_box(f(nums[i]));
    }
}

M experimental-data/Makefile => experimental-data/Makefile +22 -6
@@ 1,13 1,29 @@
%.data: %.raw bench-to-cols.py
RAWFILES = $(shell find . -name "*raw")



all:
	make -k $(foreach RAW,$(RAWFILES),\
			$(shell echo $(RAW) | sed "s/.raw/-box.pdf/g")\
			$(shell echo $(RAW) | sed "s/.raw/-line.pdf/g")\
		  )

%.boxdata: %.raw bench-to-cols.py
	./bench-to-cols.py < $< > $@

hm80-t72.pdf: hm80-t72.data 
	./boxplot.sh hm80-t72.data hm80-t72.pdf "80/10/10, t=72"
%.linedata: %.raw bench-to-cols.py
	./linedata.py < $< > $@

hm80-t72-box.pdf: hm80-t72.boxdata
	./boxplot.sh hm80-t72.boxdata hm80-t72-box.pdf "80/10/10, t=72"

%-box.pdf: %.boxdata
	./boxplot.sh $< $*-box.pdf ""

%.pdf: %.data
	./boxplot.sh $< $*.pdf ""
%-line.pdf: %.linedata lineplot.sh
	./lineplot.sh $< $*-line.pdf ""

.PHONY: clean
clean:
	rm -f *.data *.pdf
	rm -f *.data *.pdf *.linedata *.boxdata


M experimental-data/bench-to-cols.py => experimental-data/bench-to-cols.py +22 -9
@@ 8,30 8,43 @@
# to column wise order where one column is one kind (cmr, std, cb, or cbo),
# and each row is one data point.
#       # cmr std cb cbo
#       15130383 1451166 13969566 15289533 
#       15130383 1451166 13969566 15289533
#       ....
#
# Data is read from `stdin`, and output is written to stdout.
#
# Note that this is used for making Box plots, and we assume all thread
# counts in the input file are the same.

import sys

values = {}

for line in sys.stdin.readlines():
    stripped = line.strip()
    if stripped == '' or stripped[0] == '#':
        continue
    split = line.split()
    threads = split[0]
    kind = split[1].split('::')[0]
    ops = split[3].replace(',', '')
    if kind not in values:
        values[kind] = []
    values[kind].append(ops)
    key = (kind, threads)
    if key not in values:
        values[key] = []
    values[key].append(ops)

if any(map(lambda l: len(l) == 1, values.values())):
    sys.exit(1)

# Assert that all kinds have the same number of data points
assert(len(set(map(lambda l: len(l), values.items()))) == 1)

z = list(zip(*values.items()))
kinds = z[0]
print('\t'.join(kinds))
nums = zip(*z[1])

for nums in zip(*z[1]):

keys = sorted(values.keys())
# Remove the thread count for the header.
# NOTE: We assume that there's only one count of thread in the data.
kinds = list(map(lambda t: t[0], keys))
print('\t'.join(kinds))
for nums in zip(*[values[k] for k in keys]):
    print('\t'.join(list(nums)))

A experimental-data/hm80-t1-8-box.pdf => experimental-data/hm80-t1-8-box.pdf +0 -0
A experimental-data/hm80-t1-8-line.pdf => experimental-data/hm80-t1-8-line.pdf +0 -0
A experimental-data/hm80-t1-8.raw => experimental-data/hm80-t1-8.raw +336 -0
@@ 0,0 1,336 @@
1	cmr::HashMap	contains	1,572,533 ops/sec
1	cbo::HashMap	contains	1,401,000 ops/sec
2	cmr::HashMap	contains	3,804,066 ops/sec
2	cbo::HashMap	contains	2,801,750 ops/sec
3	cmr::HashMap	contains	6,466,100 ops/sec
3	cbo::HashMap	contains	4,089,950 ops/sec
4	cmr::HashMap	contains	9,238,933 ops/sec
4	cbo::HashMap	contains	5,473,050 ops/sec
5	cmr::HashMap	contains	10,252,833 ops/sec
5	cbo::HashMap	contains	6,579,500 ops/sec
6	cmr::HashMap	contains	11,729,266 ops/sec
6	cbo::HashMap	contains	7,587,200 ops/sec
7	cmr::HashMap	contains	11,791,466 ops/sec
7	cbo::HashMap	contains	8,718,750 ops/sec
8	cmr::HashMap	contains	11,709,700 ops/sec
8	cbo::HashMap	contains	9,542,350 ops/sec
1	cmr::HashMap	80-10-10	1,579,183 ops/sec
1	std::HashMap	80-10-10	6,839,400 ops/sec
1	cb::HashMap	80-10-10	730,500 ops/sec
1	cbo::HashMap	80-10-10	1,493,400 ops/sec
1	cmr::HashMap	80-10-10	1,579,183 ops/sec
1	std::HashMap	80-10-10	6,762,100 ops/sec
1	cb::HashMap	80-10-10	726,600 ops/sec
1	cbo::HashMap	80-10-10	1,490,400 ops/sec
1	cmr::HashMap	80-10-10	1,578,050 ops/sec
1	std::HashMap	80-10-10	6,876,900 ops/sec
1	cb::HashMap	80-10-10	727,600 ops/sec
1	cbo::HashMap	80-10-10	1,493,650 ops/sec
1	cmr::HashMap	80-10-10	1,551,183 ops/sec
1	std::HashMap	80-10-10	6,814,150 ops/sec
1	cb::HashMap	80-10-10	724,700 ops/sec
1	cbo::HashMap	80-10-10	1,505,850 ops/sec
1	cmr::HashMap	80-10-10	1,599,150 ops/sec
1	std::HashMap	80-10-10	6,807,150 ops/sec
1	cb::HashMap	80-10-10	732,550 ops/sec
1	cbo::HashMap	80-10-10	1,502,150 ops/sec
1	cmr::HashMap	80-10-10	1,576,900 ops/sec
1	std::HashMap	80-10-10	6,830,250 ops/sec
1	cb::HashMap	80-10-10	713,850 ops/sec
1	cbo::HashMap	80-10-10	1,501,350 ops/sec
1	cmr::HashMap	80-10-10	1,564,500 ops/sec
1	std::HashMap	80-10-10	6,832,250 ops/sec
1	cb::HashMap	80-10-10	725,100 ops/sec
1	cbo::HashMap	80-10-10	1,485,300 ops/sec
1	cmr::HashMap	80-10-10	1,600,616 ops/sec
1	std::HashMap	80-10-10	6,759,450 ops/sec
1	cb::HashMap	80-10-10	729,300 ops/sec
1	cbo::HashMap	80-10-10	1,473,750 ops/sec
1	cmr::HashMap	80-10-10	1,565,400 ops/sec
1	std::HashMap	80-10-10	6,806,100 ops/sec
1	cb::HashMap	80-10-10	728,050 ops/sec
1	cbo::HashMap	80-10-10	1,499,750 ops/sec
1	cmr::HashMap	80-10-10	1,584,550 ops/sec
1	std::HashMap	80-10-10	6,740,900 ops/sec
1	cb::HashMap	80-10-10	746,800 ops/sec
1	cbo::HashMap	80-10-10	1,493,050 ops/sec
2	cmr::HashMap	80-10-10	3,138,716 ops/sec
2	std::HashMap	80-10-10	2,921,650 ops/sec
2	cb::HashMap	80-10-10	1,378,900 ops/sec
2	cbo::HashMap	80-10-10	2,955,050 ops/sec
2	cmr::HashMap	80-10-10	3,157,166 ops/sec
2	std::HashMap	80-10-10	2,939,950 ops/sec
2	cb::HashMap	80-10-10	1,374,600 ops/sec
2	cbo::HashMap	80-10-10	2,931,200 ops/sec
2	cmr::HashMap	80-10-10	3,145,366 ops/sec
2	std::HashMap	80-10-10	2,889,000 ops/sec
2	cb::HashMap	80-10-10	1,377,900 ops/sec
2	cbo::HashMap	80-10-10	2,970,100 ops/sec
2	cmr::HashMap	80-10-10	3,168,266 ops/sec
2	std::HashMap	80-10-10	2,962,600 ops/sec
2	cb::HashMap	80-10-10	1,347,100 ops/sec
2	cbo::HashMap	80-10-10	2,948,450 ops/sec
2	cmr::HashMap	80-10-10	3,144,933 ops/sec
2	std::HashMap	80-10-10	2,842,700 ops/sec
2	cb::HashMap	80-10-10	1,397,950 ops/sec
2	cbo::HashMap	80-10-10	2,931,050 ops/sec
2	cmr::HashMap	80-10-10	3,137,233 ops/sec
2	std::HashMap	80-10-10	2,937,800 ops/sec
2	cb::HashMap	80-10-10	1,370,800 ops/sec
2	cbo::HashMap	80-10-10	2,941,850 ops/sec
2	cmr::HashMap	80-10-10	3,083,000 ops/sec
2	std::HashMap	80-10-10	2,892,450 ops/sec
2	cb::HashMap	80-10-10	1,394,500 ops/sec
2	cbo::HashMap	80-10-10	2,930,500 ops/sec
2	cmr::HashMap	80-10-10	3,131,683 ops/sec
2	std::HashMap	80-10-10	2,952,850 ops/sec
2	cb::HashMap	80-10-10	1,394,150 ops/sec
2	cbo::HashMap	80-10-10	2,942,850 ops/sec
2	cmr::HashMap	80-10-10	3,130,216 ops/sec
2	std::HashMap	80-10-10	2,885,200 ops/sec
2	cb::HashMap	80-10-10	1,383,250 ops/sec
2	cbo::HashMap	80-10-10	2,956,200 ops/sec
2	cmr::HashMap	80-10-10	3,151,900 ops/sec
2	std::HashMap	80-10-10	3,013,550 ops/sec
2	cb::HashMap	80-10-10	1,383,000 ops/sec
2	cbo::HashMap	80-10-10	2,949,250 ops/sec
3	cmr::HashMap	80-10-10	4,491,600 ops/sec
3	std::HashMap	80-10-10	2,221,950 ops/sec
3	cb::HashMap	80-10-10	2,025,750 ops/sec
3	cbo::HashMap	80-10-10	4,385,300 ops/sec
3	cmr::HashMap	80-10-10	4,338,783 ops/sec
3	std::HashMap	80-10-10	2,234,200 ops/sec
3	cb::HashMap	80-10-10	2,044,850 ops/sec
3	cbo::HashMap	80-10-10	4,397,350 ops/sec
3	cmr::HashMap	80-10-10	4,412,450 ops/sec
3	std::HashMap	80-10-10	2,186,550 ops/sec
3	cb::HashMap	80-10-10	2,029,500 ops/sec
3	cbo::HashMap	80-10-10	4,390,900 ops/sec
3	cmr::HashMap	80-10-10	4,406,850 ops/sec
3	std::HashMap	80-10-10	2,244,750 ops/sec
3	cb::HashMap	80-10-10	2,064,350 ops/sec
3	cbo::HashMap	80-10-10	4,356,900 ops/sec
3	cmr::HashMap	80-10-10	4,470,383 ops/sec
3	std::HashMap	80-10-10	2,154,650 ops/sec
3	cb::HashMap	80-10-10	2,043,800 ops/sec
3	cbo::HashMap	80-10-10	4,403,100 ops/sec
3	cmr::HashMap	80-10-10	4,452,833 ops/sec
3	std::HashMap	80-10-10	2,220,650 ops/sec
3	cb::HashMap	80-10-10	2,019,600 ops/sec
3	cbo::HashMap	80-10-10	4,371,600 ops/sec
3	cmr::HashMap	80-10-10	4,303,000 ops/sec
3	std::HashMap	80-10-10	2,243,850 ops/sec
3	cb::HashMap	80-10-10	2,049,950 ops/sec
3	cbo::HashMap	80-10-10	4,380,250 ops/sec
3	cmr::HashMap	80-10-10	4,417,183 ops/sec
3	std::HashMap	80-10-10	2,166,850 ops/sec
3	cb::HashMap	80-10-10	2,047,850 ops/sec
3	cbo::HashMap	80-10-10	4,355,750 ops/sec
3	cmr::HashMap	80-10-10	4,457,616 ops/sec
3	std::HashMap	80-10-10	2,242,800 ops/sec
3	cb::HashMap	80-10-10	2,039,050 ops/sec
3	cbo::HashMap	80-10-10	4,387,550 ops/sec
3	cmr::HashMap	80-10-10	4,409,700 ops/sec
3	std::HashMap	80-10-10	2,187,650 ops/sec
3	cb::HashMap	80-10-10	2,039,550 ops/sec
3	cbo::HashMap	80-10-10	4,341,200 ops/sec
4	cmr::HashMap	80-10-10	5,253,066 ops/sec
4	std::HashMap	80-10-10	1,863,900 ops/sec
4	cb::HashMap	80-10-10	2,682,300 ops/sec
4	cbo::HashMap	80-10-10	5,819,550 ops/sec
4	cmr::HashMap	80-10-10	5,310,333 ops/sec
4	std::HashMap	80-10-10	1,943,400 ops/sec
4	cb::HashMap	80-10-10	2,686,650 ops/sec
4	cbo::HashMap	80-10-10	5,849,250 ops/sec
4	cmr::HashMap	80-10-10	5,423,866 ops/sec
4	std::HashMap	80-10-10	1,949,200 ops/sec
4	cb::HashMap	80-10-10	2,686,650 ops/sec
4	cbo::HashMap	80-10-10	5,596,800 ops/sec
4	cmr::HashMap	80-10-10	5,322,933 ops/sec
4	std::HashMap	80-10-10	1,918,800 ops/sec
4	cb::HashMap	80-10-10	2,679,650 ops/sec
4	cbo::HashMap	80-10-10	5,797,250 ops/sec
4	cmr::HashMap	80-10-10	5,355,866 ops/sec
4	std::HashMap	80-10-10	1,926,050 ops/sec
4	cb::HashMap	80-10-10	2,662,150 ops/sec
4	cbo::HashMap	80-10-10	5,718,300 ops/sec
4	cmr::HashMap	80-10-10	5,227,266 ops/sec
4	std::HashMap	80-10-10	1,987,800 ops/sec
4	cb::HashMap	80-10-10	2,677,400 ops/sec
4	cbo::HashMap	80-10-10	5,734,500 ops/sec
4	cmr::HashMap	80-10-10	5,415,466 ops/sec
4	std::HashMap	80-10-10	1,975,400 ops/sec
4	cb::HashMap	80-10-10	2,683,900 ops/sec
4	cbo::HashMap	80-10-10	5,817,800 ops/sec
4	cmr::HashMap	80-10-10	5,368,033 ops/sec
4	std::HashMap	80-10-10	2,010,700 ops/sec
4	cb::HashMap	80-10-10	2,685,250 ops/sec
4	cbo::HashMap	80-10-10	5,786,550 ops/sec
4	cmr::HashMap	80-10-10	5,300,533 ops/sec
4	std::HashMap	80-10-10	2,006,400 ops/sec
4	cb::HashMap	80-10-10	2,674,350 ops/sec
4	cbo::HashMap	80-10-10	5,796,850 ops/sec
4	cmr::HashMap	80-10-10	5,310,233 ops/sec
4	std::HashMap	80-10-10	2,010,000 ops/sec
4	cb::HashMap	80-10-10	2,656,500 ops/sec
4	cbo::HashMap	80-10-10	5,736,650 ops/sec
5	cmr::HashMap	80-10-10	5,774,916 ops/sec
5	std::HashMap	80-10-10	1,799,950 ops/sec
5	cb::HashMap	80-10-10	3,154,850 ops/sec
5	cbo::HashMap	80-10-10	6,610,050 ops/sec
5	cmr::HashMap	80-10-10	5,664,116 ops/sec
5	std::HashMap	80-10-10	1,784,600 ops/sec
5	cb::HashMap	80-10-10	3,063,350 ops/sec
5	cbo::HashMap	80-10-10	6,656,300 ops/sec
5	cmr::HashMap	80-10-10	5,979,666 ops/sec
5	std::HashMap	80-10-10	1,860,700 ops/sec
5	cb::HashMap	80-10-10	3,136,200 ops/sec
5	cbo::HashMap	80-10-10	6,611,250 ops/sec
5	cmr::HashMap	80-10-10	5,854,333 ops/sec
5	std::HashMap	80-10-10	1,716,500 ops/sec
5	cb::HashMap	80-10-10	3,151,950 ops/sec
5	cbo::HashMap	80-10-10	6,681,550 ops/sec
5	cmr::HashMap	80-10-10	5,722,650 ops/sec
5	std::HashMap	80-10-10	1,773,650 ops/sec
5	cb::HashMap	80-10-10	3,188,900 ops/sec
5	cbo::HashMap	80-10-10	6,660,600 ops/sec
5	cmr::HashMap	80-10-10	5,791,700 ops/sec
5	std::HashMap	80-10-10	1,783,850 ops/sec
5	cb::HashMap	80-10-10	3,154,750 ops/sec
5	cbo::HashMap	80-10-10	6,630,450 ops/sec
5	cmr::HashMap	80-10-10	5,894,166 ops/sec
5	std::HashMap	80-10-10	1,767,400 ops/sec
5	cb::HashMap	80-10-10	3,141,700 ops/sec
5	cbo::HashMap	80-10-10	6,648,650 ops/sec
5	cmr::HashMap	80-10-10	5,696,750 ops/sec
5	std::HashMap	80-10-10	1,784,050 ops/sec
5	cb::HashMap	80-10-10	3,158,700 ops/sec
5	cbo::HashMap	80-10-10	6,652,350 ops/sec
5	cmr::HashMap	80-10-10	5,756,000 ops/sec
5	std::HashMap	80-10-10	1,807,000 ops/sec
5	cb::HashMap	80-10-10	3,128,100 ops/sec
5	cbo::HashMap	80-10-10	6,582,200 ops/sec
5	cmr::HashMap	80-10-10	5,885,416 ops/sec
5	std::HashMap	80-10-10	1,861,000 ops/sec
5	cb::HashMap	80-10-10	3,119,850 ops/sec
5	cbo::HashMap	80-10-10	6,617,550 ops/sec
6	cmr::HashMap	80-10-10	5,688,616 ops/sec
6	std::HashMap	80-10-10	1,782,100 ops/sec
6	cb::HashMap	80-10-10	3,411,900 ops/sec
6	cbo::HashMap	80-10-10	7,742,550 ops/sec
6	cmr::HashMap	80-10-10	5,370,633 ops/sec
6	std::HashMap	80-10-10	1,648,600 ops/sec
6	cb::HashMap	80-10-10	3,428,700 ops/sec
6	cbo::HashMap	80-10-10	7,703,400 ops/sec
6	cmr::HashMap	80-10-10	5,807,150 ops/sec
6	std::HashMap	80-10-10	1,889,050 ops/sec
6	cb::HashMap	80-10-10	3,381,050 ops/sec
6	cbo::HashMap	80-10-10	7,735,900 ops/sec
6	cmr::HashMap	80-10-10	5,429,083 ops/sec
6	std::HashMap	80-10-10	1,664,250 ops/sec
6	cb::HashMap	80-10-10	3,413,750 ops/sec
6	cbo::HashMap	80-10-10	7,770,350 ops/sec
6	cmr::HashMap	80-10-10	5,626,933 ops/sec
6	std::HashMap	80-10-10	1,846,350 ops/sec
6	cb::HashMap	80-10-10	3,417,000 ops/sec
6	cbo::HashMap	80-10-10	7,734,050 ops/sec
6	cmr::HashMap	80-10-10	5,814,283 ops/sec
6	std::HashMap	80-10-10	1,713,850 ops/sec
6	cb::HashMap	80-10-10	3,405,400 ops/sec
6	cbo::HashMap	80-10-10	7,692,400 ops/sec
6	cmr::HashMap	80-10-10	5,575,066 ops/sec
6	std::HashMap	80-10-10	1,737,700 ops/sec
6	cb::HashMap	80-10-10	3,459,650 ops/sec
6	cbo::HashMap	80-10-10	7,752,250 ops/sec
6	cmr::HashMap	80-10-10	5,652,833 ops/sec
6	std::HashMap	80-10-10	1,824,950 ops/sec
6	cb::HashMap	80-10-10	3,351,050 ops/sec
6	cbo::HashMap	80-10-10	7,752,300 ops/sec
6	cmr::HashMap	80-10-10	5,716,983 ops/sec
6	std::HashMap	80-10-10	1,730,550 ops/sec
6	cb::HashMap	80-10-10	3,420,750 ops/sec
6	cbo::HashMap	80-10-10	7,595,700 ops/sec
6	cmr::HashMap	80-10-10	5,593,166 ops/sec
6	std::HashMap	80-10-10	1,721,300 ops/sec
6	cb::HashMap	80-10-10	3,409,650 ops/sec
6	cbo::HashMap	80-10-10	7,714,400 ops/sec
7	cmr::HashMap	80-10-10	5,517,583 ops/sec
7	std::HashMap	80-10-10	1,812,200 ops/sec
7	cb::HashMap	80-10-10	3,692,950 ops/sec
7	cbo::HashMap	80-10-10	8,669,350 ops/sec
7	cmr::HashMap	80-10-10	5,680,766 ops/sec
7	std::HashMap	80-10-10	2,010,350 ops/sec
7	cb::HashMap	80-10-10	3,721,350 ops/sec
7	cbo::HashMap	80-10-10	8,557,300 ops/sec
7	cmr::HashMap	80-10-10	5,356,916 ops/sec
7	std::HashMap	80-10-10	1,669,400 ops/sec
7	cb::HashMap	80-10-10	3,693,800 ops/sec
7	cbo::HashMap	80-10-10	8,558,350 ops/sec
7	cmr::HashMap	80-10-10	5,777,850 ops/sec
7	std::HashMap	80-10-10	1,685,800 ops/sec
7	cb::HashMap	80-10-10	3,759,850 ops/sec
7	cbo::HashMap	80-10-10	8,606,950 ops/sec
7	cmr::HashMap	80-10-10	6,383,766 ops/sec
7	std::HashMap	80-10-10	1,669,400 ops/sec
7	cb::HashMap	80-10-10	3,681,650 ops/sec
7	cbo::HashMap	80-10-10	8,609,100 ops/sec
7	cmr::HashMap	80-10-10	5,471,250 ops/sec
7	std::HashMap	80-10-10	1,754,850 ops/sec
7	cb::HashMap	80-10-10	3,689,050 ops/sec
7	cbo::HashMap	80-10-10	8,317,800 ops/sec
7	cmr::HashMap	80-10-10	5,808,433 ops/sec
7	std::HashMap	80-10-10	1,689,750 ops/sec
7	cb::HashMap	80-10-10	3,718,550 ops/sec
7	cbo::HashMap	80-10-10	8,318,250 ops/sec
7	cmr::HashMap	80-10-10	5,696,750 ops/sec
7	std::HashMap	80-10-10	1,554,650 ops/sec
7	cb::HashMap	80-10-10	3,679,700 ops/sec
7	cbo::HashMap	80-10-10	8,456,900 ops/sec
7	cmr::HashMap	80-10-10	6,152,316 ops/sec
7	std::HashMap	80-10-10	1,962,500 ops/sec
7	cb::HashMap	80-10-10	3,676,050 ops/sec
7	cbo::HashMap	80-10-10	8,550,750 ops/sec
7	cmr::HashMap	80-10-10	6,375,383 ops/sec
7	std::HashMap	80-10-10	1,616,800 ops/sec
7	cb::HashMap	80-10-10	3,779,450 ops/sec
7	cbo::HashMap	80-10-10	8,474,700 ops/sec
8	cmr::HashMap	80-10-10	6,392,183 ops/sec
8	std::HashMap	80-10-10	1,704,850 ops/sec
8	cb::HashMap	80-10-10	3,784,200 ops/sec
8	cbo::HashMap	80-10-10	9,384,250 ops/sec
8	cmr::HashMap	80-10-10	5,804,666 ops/sec
8	std::HashMap	80-10-10	1,632,800 ops/sec
8	cb::HashMap	80-10-10	3,913,250 ops/sec
8	cbo::HashMap	80-10-10	9,249,550 ops/sec
8	cmr::HashMap	80-10-10	6,116,583 ops/sec
8	std::HashMap	80-10-10	1,773,450 ops/sec
8	cb::HashMap	80-10-10	3,947,050 ops/sec
8	cbo::HashMap	80-10-10	9,380,000 ops/sec
8	cmr::HashMap	80-10-10	6,204,733 ops/sec
8	std::HashMap	80-10-10	1,555,100 ops/sec
8	cb::HashMap	80-10-10	3,902,850 ops/sec
8	cbo::HashMap	80-10-10	9,354,900 ops/sec
8	cmr::HashMap	80-10-10	5,929,516 ops/sec
8	std::HashMap	80-10-10	1,559,550 ops/sec
8	cb::HashMap	80-10-10	3,902,400 ops/sec
8	cbo::HashMap	80-10-10	9,366,750 ops/sec
8	cmr::HashMap	80-10-10	6,656,750 ops/sec
8	std::HashMap	80-10-10	1,559,250 ops/sec
8	cb::HashMap	80-10-10	3,908,250 ops/sec
8	cbo::HashMap	80-10-10	9,174,500 ops/sec
8	cmr::HashMap	80-10-10	6,526,550 ops/sec
8	std::HashMap	80-10-10	1,560,100 ops/sec
8	cb::HashMap	80-10-10	3,893,800 ops/sec
8	cbo::HashMap	80-10-10	9,371,300 ops/sec
8	cmr::HashMap	80-10-10	6,329,300 ops/sec
8	std::HashMap	80-10-10	1,641,450 ops/sec
8	cb::HashMap	80-10-10	3,941,750 ops/sec
8	cbo::HashMap	80-10-10	9,227,900 ops/sec
8	cmr::HashMap	80-10-10	6,549,033 ops/sec
8	std::HashMap	80-10-10	1,611,400 ops/sec
8	cb::HashMap	80-10-10	3,878,500 ops/sec
8	cbo::HashMap	80-10-10	9,159,250 ops/sec
8	cmr::HashMap	80-10-10	6,312,850 ops/sec
8	std::HashMap	80-10-10	1,646,600 ops/sec
8	cb::HashMap	80-10-10	3,899,700 ops/sec
8	cbo::HashMap	80-10-10	9,420,400 ops/sec

A experimental-data/hm80-t144-box.pdf => experimental-data/hm80-t144-box.pdf +0 -0
A experimental-data/hm80-t144.raw => experimental-data/hm80-t144.raw +400 -0
@@ 0,0 1,400 @@
144     cmr::HashMap    80-10-10        22,111,716 ops/sec
144     std::HashMap    80-10-10        1,201,250 ops/sec
144     cb::HashMap     80-10-10        18,126,800 ops/sec
144     cbo::HashMap    80-10-10        17,573,916 ops/sec
144     cmr::HashMap    80-10-10        22,102,333 ops/sec
144     std::HashMap    80-10-10        1,170,966 ops/sec
144     cb::HashMap     80-10-10        18,076,283 ops/sec
144     cbo::HashMap    80-10-10        18,628,700 ops/sec
144     cmr::HashMap    80-10-10        21,997,100 ops/sec
144     std::HashMap    80-10-10        1,167,733 ops/sec
144     cb::HashMap     80-10-10        17,060,066 ops/sec
144     cbo::HashMap    80-10-10        18,137,083 ops/sec
144     cmr::HashMap    80-10-10        21,554,483 ops/sec
144     std::HashMap    80-10-10        1,214,016 ops/sec
144     cb::HashMap     80-10-10        20,733,150 ops/sec
144     cbo::HashMap    80-10-10        17,828,450 ops/sec
144     cmr::HashMap    80-10-10        20,435,383 ops/sec
144     std::HashMap    80-10-10        1,166,483 ops/sec
144     cb::HashMap     80-10-10        17,190,116 ops/sec
144     cbo::HashMap    80-10-10        20,219,350 ops/sec
144     cmr::HashMap    80-10-10        21,578,933 ops/sec
144     std::HashMap    80-10-10        1,106,966 ops/sec
144     cb::HashMap     80-10-10        19,838,416 ops/sec
144     cbo::HashMap    80-10-10        18,323,750 ops/sec
144     cmr::HashMap    80-10-10        21,958,816 ops/sec
144     std::HashMap    80-10-10        1,149,600 ops/sec
144     cb::HashMap     80-10-10        19,171,983 ops/sec
144     cbo::HashMap    80-10-10        17,935,983 ops/sec
144     cmr::HashMap    80-10-10        21,752,083 ops/sec
144     std::HashMap    80-10-10        1,188,750 ops/sec
144     cb::HashMap     80-10-10        19,455,766 ops/sec
144     cbo::HashMap    80-10-10        17,686,750 ops/sec
144     cmr::HashMap    80-10-10        21,543,866 ops/sec
144     std::HashMap    80-10-10        1,184,616 ops/sec
144     cb::HashMap     80-10-10        17,045,050 ops/sec
144     cbo::HashMap    80-10-10        17,422,916 ops/sec
144     cmr::HashMap    80-10-10        20,868,616 ops/sec
144     std::HashMap    80-10-10        1,127,633 ops/sec
144     cb::HashMap     80-10-10        18,898,750 ops/sec
144     cbo::HashMap    80-10-10        18,078,650 ops/sec
144     cmr::HashMap    80-10-10        22,475,000 ops/sec
144     std::HashMap    80-10-10        1,140,800 ops/sec
144     cb::HashMap     80-10-10        17,683,333 ops/sec
144     cbo::HashMap    80-10-10        18,705,183 ops/sec
144     cmr::HashMap    80-10-10        21,673,516 ops/sec
144     std::HashMap    80-10-10        1,139,483 ops/sec
144     cb::HashMap     80-10-10        16,545,516 ops/sec
144     cbo::HashMap    80-10-10        17,904,416 ops/sec
144     cmr::HashMap    80-10-10        21,914,500 ops/sec
144     std::HashMap    80-10-10        1,184,483 ops/sec
144     cb::HashMap     80-10-10        17,482,833 ops/sec
144     cbo::HashMap    80-10-10        17,664,783 ops/sec
144     cmr::HashMap    80-10-10        22,360,933 ops/sec
144     std::HashMap    80-10-10        1,152,800 ops/sec
144     cb::HashMap     80-10-10        20,552,333 ops/sec
144     cbo::HashMap    80-10-10        18,366,150 ops/sec
144     cmr::HashMap    80-10-10        22,128,133 ops/sec
144     std::HashMap    80-10-10        1,145,816 ops/sec
144     cb::HashMap     80-10-10        17,014,750 ops/sec
144     cbo::HashMap    80-10-10        17,303,300 ops/sec
144     cmr::HashMap    80-10-10        21,740,783 ops/sec
144     std::HashMap    80-10-10        1,198,066 ops/sec
144     cb::HashMap     80-10-10        17,256,216 ops/sec
144     cbo::HashMap    80-10-10        17,828,550 ops/sec
144     cmr::HashMap    80-10-10        21,512,716 ops/sec
144     std::HashMap    80-10-10        1,205,933 ops/sec
144     cb::HashMap     80-10-10        19,919,400 ops/sec
144     cbo::HashMap    80-10-10        17,975,883 ops/sec
144     cmr::HashMap    80-10-10        22,810,733 ops/sec
144     std::HashMap    80-10-10        1,199,883 ops/sec
144     cb::HashMap     80-10-10        16,637,050 ops/sec
144     cbo::HashMap    80-10-10        17,879,200 ops/sec
144     cmr::HashMap    80-10-10        22,448,883 ops/sec
144     std::HashMap    80-10-10        1,140,933 ops/sec
144     cb::HashMap     80-10-10        20,914,233 ops/sec
144     cbo::HashMap    80-10-10        17,556,083 ops/sec
144     cmr::HashMap    80-10-10        22,138,216 ops/sec
144     std::HashMap    80-10-10        1,191,350 ops/sec
144     cb::HashMap     80-10-10        19,135,400 ops/sec
144     cbo::HashMap    80-10-10        17,844,866 ops/sec
144     cmr::HashMap    80-10-10        21,815,700 ops/sec
144     std::HashMap    80-10-10        1,168,816 ops/sec
144     cb::HashMap     80-10-10        17,336,666 ops/sec
144     cbo::HashMap    80-10-10        21,373,833 ops/sec
144     cmr::HashMap    80-10-10        21,791,950 ops/sec
144     std::HashMap    80-10-10        1,197,566 ops/sec
144     cb::HashMap     80-10-10        17,774,366 ops/sec
144     cbo::HashMap    80-10-10        20,275,783 ops/sec
144     cmr::HashMap    80-10-10        21,714,583 ops/sec
144     std::HashMap    80-10-10        1,173,466 ops/sec
144     cb::HashMap     80-10-10        17,470,516 ops/sec
144     cbo::HashMap    80-10-10        16,967,816 ops/sec
144     cmr::HashMap    80-10-10        22,330,150 ops/sec
144     std::HashMap    80-10-10        1,135,366 ops/sec
144     cb::HashMap     80-10-10        17,070,466 ops/sec
144     cbo::HashMap    80-10-10        20,342,783 ops/sec
144     cmr::HashMap    80-10-10        21,641,800 ops/sec
144     std::HashMap    80-10-10        1,227,366 ops/sec
144     cb::HashMap     80-10-10        19,410,733 ops/sec
144     cbo::HashMap    80-10-10        17,955,750 ops/sec
144     cmr::HashMap    80-10-10        22,056,366 ops/sec
144     std::HashMap    80-10-10        1,178,650 ops/sec
144     cb::HashMap     80-10-10        19,299,583 ops/sec
144     cbo::HashMap    80-10-10        17,632,800 ops/sec
144     cmr::HashMap    80-10-10        21,906,433 ops/sec
144     std::HashMap    80-10-10        1,178,766 ops/sec
144     cb::HashMap     80-10-10        17,438,183 ops/sec
144     cbo::HashMap    80-10-10        18,461,083 ops/sec
144     cmr::HashMap    80-10-10        20,292,183 ops/sec
144     std::HashMap    80-10-10        1,153,916 ops/sec
144     cb::HashMap     80-10-10        18,812,650 ops/sec
144     cbo::HashMap    80-10-10        17,784,383 ops/sec
144     cmr::HashMap    80-10-10        21,940,650 ops/sec
144     std::HashMap    80-10-10        1,214,366 ops/sec
144     cb::HashMap     80-10-10        17,375,666 ops/sec
144     cbo::HashMap    80-10-10        18,164,433 ops/sec
144     cmr::HashMap    80-10-10        22,706,383 ops/sec
144     std::HashMap    80-10-10        1,177,050 ops/sec
144     cb::HashMap     80-10-10        20,060,333 ops/sec
144     cbo::HashMap    80-10-10        19,157,833 ops/sec
144     cmr::HashMap    80-10-10        21,735,683 ops/sec
144     std::HashMap    80-10-10        1,224,966 ops/sec
144     cb::HashMap     80-10-10        19,564,183 ops/sec
144     cbo::HashMap    80-10-10        18,144,400 ops/sec
144     cmr::HashMap    80-10-10        21,533,266 ops/sec
144     std::HashMap    80-10-10        1,152,216 ops/sec
144     cb::HashMap     80-10-10        17,355,516 ops/sec
144     cbo::HashMap    80-10-10        18,124,683 ops/sec
144     cmr::HashMap    80-10-10        21,834,050 ops/sec
144     std::HashMap    80-10-10        1,158,366 ops/sec
144     cb::HashMap     80-10-10        18,261,100 ops/sec
144     cbo::HashMap    80-10-10        17,080,183 ops/sec
144     cmr::HashMap    80-10-10        21,855,666 ops/sec
144     std::HashMap    80-10-10        1,198,333 ops/sec
144     cb::HashMap     80-10-10        16,374,900 ops/sec
144     cbo::HashMap    80-10-10        20,633,366 ops/sec
144     cmr::HashMap    80-10-10        21,086,100 ops/sec
144     std::HashMap    80-10-10        1,192,116 ops/sec
144     cb::HashMap     80-10-10        17,250,383 ops/sec
144     cbo::HashMap    80-10-10        20,438,516 ops/sec
144     cmr::HashMap    80-10-10        23,042,700 ops/sec
144     std::HashMap    80-10-10        1,183,683 ops/sec
144     cb::HashMap     80-10-10        18,066,533 ops/sec
144     cbo::HashMap    80-10-10        21,104,183 ops/sec
144     cmr::HashMap    80-10-10        20,704,716 ops/sec
144     std::HashMap    80-10-10        1,173,950 ops/sec
144     cb::HashMap     80-10-10        17,966,816 ops/sec
144     cbo::HashMap    80-10-10        18,191,800 ops/sec
144     cmr::HashMap    80-10-10        22,141,283 ops/sec
144     std::HashMap    80-10-10        1,137,666 ops/sec
144     cb::HashMap     80-10-10        18,022,650 ops/sec
144     cbo::HashMap    80-10-10        21,318,000 ops/sec
144     cmr::HashMap    80-10-10        22,782,333 ops/sec
144     std::HashMap    80-10-10        1,187,866 ops/sec
144     cb::HashMap     80-10-10        19,696,650 ops/sec
144     cbo::HashMap    80-10-10        17,357,616 ops/sec
144     cmr::HashMap    80-10-10        22,579,350 ops/sec
144     std::HashMap    80-10-10        1,171,916 ops/sec
144     cb::HashMap     80-10-10        17,550,233 ops/sec
144     cbo::HashMap    80-10-10        17,909,066 ops/sec
144     cmr::HashMap    80-10-10        22,135,500 ops/sec
144     std::HashMap    80-10-10        1,155,516 ops/sec
144     cb::HashMap     80-10-10        19,125,866 ops/sec
144     cbo::HashMap    80-10-10        18,216,050 ops/sec
144     cmr::HashMap    80-10-10        22,202,850 ops/sec
144     std::HashMap    80-10-10        1,172,233 ops/sec
144     cb::HashMap     80-10-10        17,365,133 ops/sec
144     cbo::HashMap    80-10-10        18,494,733 ops/sec
144     cmr::HashMap    80-10-10        21,633,850 ops/sec
144     std::HashMap    80-10-10        1,181,250 ops/sec
144     cb::HashMap     80-10-10        18,098,233 ops/sec
144     cbo::HashMap    80-10-10        17,959,450 ops/sec
144     cmr::HashMap    80-10-10        20,502,733 ops/sec
144     std::HashMap    80-10-10        1,152,366 ops/sec
144     cb::HashMap     80-10-10        17,075,200 ops/sec
144     cbo::HashMap    80-10-10        20,941,566 ops/sec
144     cmr::HashMap    80-10-10        21,689,283 ops/sec
144     std::HashMap    80-10-10        1,176,900 ops/sec
144     cb::HashMap     80-10-10        17,472,433 ops/sec
144     cbo::HashMap    80-10-10        20,002,516 ops/sec
144     cmr::HashMap    80-10-10        21,719,716 ops/sec
144     std::HashMap    80-10-10        1,159,266 ops/sec
144     cb::HashMap     80-10-10        17,135,750 ops/sec
144     cbo::HashMap    80-10-10        16,954,900 ops/sec
144     cmr::HashMap    80-10-10        22,606,466 ops/sec
144     std::HashMap    80-10-10        1,149,933 ops/sec
144     cb::HashMap     80-10-10        19,625,100 ops/sec
144     cbo::HashMap    80-10-10        18,262,833 ops/sec
144     cmr::HashMap    80-10-10        21,135,316 ops/sec
144     std::HashMap    80-10-10        1,162,100 ops/sec
144     cb::HashMap     80-10-10        17,109,433 ops/sec
144     cbo::HashMap    80-10-10        17,895,750 ops/sec
144     cmr::HashMap    80-10-10        20,664,200 ops/sec
144     std::HashMap    80-10-10        1,211,916 ops/sec
144     cb::HashMap     80-10-10        19,322,783 ops/sec
144     cbo::HashMap    80-10-10        17,598,516 ops/sec
144     cmr::HashMap    80-10-10        21,781,100 ops/sec
144     std::HashMap    80-10-10        1,200,850 ops/sec
144     cb::HashMap     80-10-10        17,480,000 ops/sec
144     cbo::HashMap    80-10-10        17,152,483 ops/sec
144     cmr::HashMap    80-10-10        22,202,850 ops/sec
144     std::HashMap    80-10-10        1,151,516 ops/sec
144     cb::HashMap     80-10-10        16,567,750 ops/sec
144     cbo::HashMap    80-10-10        18,647,350 ops/sec
144     cmr::HashMap    80-10-10        21,823,400 ops/sec
144     std::HashMap    80-10-10        1,162,133 ops/sec
144     cb::HashMap     80-10-10        17,652,866 ops/sec
144     cbo::HashMap    80-10-10        20,148,783 ops/sec
144     cmr::HashMap    80-10-10        20,135,433 ops/sec
144     std::HashMap    80-10-10        1,224,883 ops/sec
144     cb::HashMap     80-10-10        16,712,633 ops/sec
144     cbo::HashMap    80-10-10        16,344,050 ops/sec
144     cmr::HashMap    80-10-10        21,733,883 ops/sec
144     std::HashMap    80-10-10        1,119,466 ops/sec
144     cb::HashMap     80-10-10        19,522,516 ops/sec
144     cbo::HashMap    80-10-10        18,082,850 ops/sec
144     cmr::HashMap    80-10-10        22,124,500 ops/sec
144     std::HashMap    80-10-10        1,162,066 ops/sec
144     cb::HashMap     80-10-10        19,151,316 ops/sec
144     cbo::HashMap    80-10-10        18,152,816 ops/sec
144     cmr::HashMap    80-10-10        22,052,533 ops/sec
144     std::HashMap    80-10-10        1,210,283 ops/sec
144     cb::HashMap     80-10-10        17,363,983 ops/sec
144     cbo::HashMap    80-10-10        17,679,250 ops/sec
144     cmr::HashMap    80-10-10        21,702,933 ops/sec
144     std::HashMap    80-10-10        1,209,816 ops/sec
144     cb::HashMap     80-10-10        17,793,616 ops/sec
144     cbo::HashMap    80-10-10        17,618,016 ops/sec
144     cmr::HashMap    80-10-10        23,130,466 ops/sec
144     std::HashMap    80-10-10        1,151,400 ops/sec
144     cb::HashMap     80-10-10        19,728,566 ops/sec
144     cbo::HashMap    80-10-10        18,853,433 ops/sec
144     cmr::HashMap    80-10-10        21,856,716 ops/sec
144     std::HashMap    80-10-10        1,162,166 ops/sec
144     cb::HashMap     80-10-10        17,246,383 ops/sec
144     cbo::HashMap    80-10-10        17,857,116 ops/sec
144     cmr::HashMap    80-10-10        22,356,066 ops/sec
144     std::HashMap    80-10-10        1,120,283 ops/sec
144     cb::HashMap     80-10-10        17,603,666 ops/sec
144     cbo::HashMap    80-10-10        17,569,083 ops/sec
144     cmr::HashMap    80-10-10        21,661,650 ops/sec
144     std::HashMap    80-10-10        1,154,183 ops/sec
144     cb::HashMap     80-10-10        17,251,516 ops/sec
144     cbo::HashMap    80-10-10        17,973,933 ops/sec
144     cmr::HashMap    80-10-10        22,318,483 ops/sec
144     std::HashMap    80-10-10        1,162,683 ops/sec
144     cb::HashMap     80-10-10        19,778,800 ops/sec
144     cbo::HashMap    80-10-10        18,658,016 ops/sec
144     cmr::HashMap    80-10-10        22,349,516 ops/sec
144     std::HashMap    80-10-10        1,122,683 ops/sec
144     cb::HashMap     80-10-10        17,615,966 ops/sec
144     cbo::HashMap    80-10-10        18,555,900 ops/sec
144     cmr::HashMap    80-10-10        21,487,300 ops/sec
144     std::HashMap    80-10-10        1,122,283 ops/sec
144     cb::HashMap     80-10-10        17,687,966 ops/sec
144     cbo::HashMap    80-10-10        20,811,600 ops/sec
144     cmr::HashMap    80-10-10        21,323,683 ops/sec
144     std::HashMap    80-10-10        1,174,216 ops/sec
144     cb::HashMap     80-10-10        19,037,416 ops/sec
144     cbo::HashMap    80-10-10        18,414,316 ops/sec
144     cmr::HashMap    80-10-10        22,000,466 ops/sec
144     std::HashMap    80-10-10        1,152,683 ops/sec
144     cb::HashMap     80-10-10        16,331,650 ops/sec
144     cbo::HashMap    80-10-10        19,843,500 ops/sec
144     cmr::HashMap    80-10-10        21,848,183 ops/sec
144     std::HashMap    80-10-10        1,157,166 ops/sec
144     cb::HashMap     80-10-10        17,598,300 ops/sec
144     cbo::HashMap    80-10-10        18,146,166 ops/sec
144     cmr::HashMap    80-10-10        21,685,066 ops/sec
144     std::HashMap    80-10-10        1,198,350 ops/sec
144     cb::HashMap     80-10-10        17,647,550 ops/sec
144     cbo::HashMap    80-10-10        17,615,916 ops/sec
144     cmr::HashMap    80-10-10        21,938,633 ops/sec
144     std::HashMap    80-10-10        1,157,166 ops/sec
144     cb::HashMap     80-10-10        16,572,833 ops/sec
144     cbo::HashMap    80-10-10        17,933,483 ops/sec
144     cmr::HashMap    80-10-10        22,275,933 ops/sec
144     std::HashMap    80-10-10        1,213,000 ops/sec
144     cb::HashMap     80-10-10        16,798,750 ops/sec
144     cbo::HashMap    80-10-10        18,060,716 ops/sec
144     cmr::HashMap    80-10-10        20,388,883 ops/sec
144     std::HashMap    80-10-10        1,149,666 ops/sec
144     cb::HashMap     80-10-10        17,619,916 ops/sec
144     cbo::HashMap    80-10-10        17,473,800 ops/sec
144     cmr::HashMap    80-10-10        20,591,316 ops/sec
144     std::HashMap    80-10-10        1,185,916 ops/sec
144     cb::HashMap     80-10-10        17,606,783 ops/sec
144     cbo::HashMap    80-10-10        19,464,583 ops/sec
144     cmr::HashMap    80-10-10        22,011,966 ops/sec
144     std::HashMap    80-10-10        1,164,366 ops/sec
144     cb::HashMap     80-10-10        17,496,016 ops/sec
144     cbo::HashMap    80-10-10        20,755,600 ops/sec
144     cmr::HashMap    80-10-10        20,260,400 ops/sec
144     std::HashMap    80-10-10        1,192,100 ops/sec
144     cb::HashMap     80-10-10        16,923,133 ops/sec
144     cbo::HashMap    80-10-10        20,769,166 ops/sec
144     cmr::HashMap    80-10-10        22,775,883 ops/sec
144     std::HashMap    80-10-10        1,186,266 ops/sec
144     cb::HashMap     80-10-10        18,274,750 ops/sec
144     cbo::HashMap    80-10-10        21,351,550 ops/sec
144     cmr::HashMap    80-10-10        20,568,183 ops/sec
144     std::HashMap    80-10-10        1,190,033 ops/sec
144     cb::HashMap     80-10-10        20,215,483 ops/sec
144     cbo::HashMap    80-10-10        16,775,500 ops/sec
144     cmr::HashMap    80-10-10        21,601,383 ops/sec
144     std::HashMap    80-10-10        1,183,800 ops/sec
144     cb::HashMap     80-10-10        17,296,500 ops/sec
144     cbo::HashMap    80-10-10        18,209,366 ops/sec
144     cmr::HashMap    80-10-10        22,396,266 ops/sec
144     std::HashMap    80-10-10        1,152,866 ops/sec
144     cb::HashMap     80-10-10        18,285,266 ops/sec
144     cbo::HashMap    80-10-10        20,253,816 ops/sec
144     cmr::HashMap    80-10-10        22,094,633 ops/sec
144     std::HashMap    80-10-10        1,182,983 ops/sec
144     cb::HashMap     80-10-10        16,673,766 ops/sec
144     cbo::HashMap    80-10-10        17,882,666 ops/sec
144     cmr::HashMap    80-10-10        21,412,950 ops/sec
144     std::HashMap    80-10-10        1,163,833 ops/sec
144     cb::HashMap     80-10-10        21,414,766 ops/sec
144     cbo::HashMap    80-10-10        19,358,966 ops/sec
144     cmr::HashMap    80-10-10        20,875,700 ops/sec
144     std::HashMap    80-10-10        1,152,933 ops/sec
144     cb::HashMap     80-10-10        19,276,383 ops/sec
144     cbo::HashMap    80-10-10        18,079,033 ops/sec
144     cmr::HashMap    80-10-10        22,452,566 ops/sec
144     std::HashMap    80-10-10        1,123,100 ops/sec
144     cb::HashMap     80-10-10        17,095,216 ops/sec
144     cbo::HashMap    80-10-10        17,922,716 ops/sec
144     cmr::HashMap    80-10-10        22,642,016 ops/sec
144     std::HashMap    80-10-10        1,210,833 ops/sec
144     cb::HashMap     80-10-10        17,799,533 ops/sec
144     cbo::HashMap    80-10-10        18,026,633 ops/sec
144     cmr::HashMap    80-10-10        22,165,183 ops/sec
144     std::HashMap    80-10-10        1,151,183 ops/sec
144     cb::HashMap     80-10-10        19,241,250 ops/sec
144     cbo::HashMap    80-10-10        18,079,416 ops/sec
144     cmr::HashMap    80-10-10        21,529,783 ops/sec
144     std::HashMap    80-10-10        1,170,766 ops/sec
144     cb::HashMap     80-10-10        17,270,966 ops/sec
144     cbo::HashMap    80-10-10        18,443,583 ops/sec
144     cmr::HashMap    80-10-10        22,111,916 ops/sec
144     std::HashMap    80-10-10        1,127,750 ops/sec
144     cb::HashMap     80-10-10        17,692,600 ops/sec
144     cbo::HashMap    80-10-10        17,708,200 ops/sec
144     cmr::HashMap    80-10-10        21,543,683 ops/sec
144     std::HashMap    80-10-10        1,194,516 ops/sec
144     cb::HashMap     80-10-10        19,045,466 ops/sec
144     cbo::HashMap    80-10-10        18,654,116 ops/sec
144     cmr::HashMap    80-10-10        21,522,816 ops/sec
144     std::HashMap    80-10-10        1,148,050 ops/sec
144     cb::HashMap     80-10-10        16,923,500 ops/sec
144     cbo::HashMap    80-10-10        18,192,250 ops/sec
144     cmr::HashMap    80-10-10        21,288,066 ops/sec
144     std::HashMap    80-10-10        1,193,666 ops/sec
144     cb::HashMap     80-10-10        17,738,616 ops/sec
144     cbo::HashMap    80-10-10        20,966,666 ops/sec
144     cmr::HashMap    80-10-10        21,183,383 ops/sec
144     std::HashMap    80-10-10        1,171,033 ops/sec
144     cb::HashMap     80-10-10        17,808,400 ops/sec
144     cbo::HashMap    80-10-10        19,718,800 ops/sec
144     cmr::HashMap    80-10-10        21,807,766 ops/sec
144     std::HashMap    80-10-10        1,130,883 ops/sec
144     cb::HashMap     80-10-10        19,557,283 ops/sec
144     cbo::HashMap    80-10-10        18,184,983 ops/sec
144     cmr::HashMap    80-10-10        21,492,150 ops/sec
144     std::HashMap    80-10-10        1,174,566 ops/sec
144     cb::HashMap     80-10-10        20,970,550 ops/sec
144     cbo::HashMap    80-10-10        17,782,900 ops/sec
144     cmr::HashMap    80-10-10        22,781,450 ops/sec
144     std::HashMap    80-10-10        1,131,483 ops/sec
144     cb::HashMap     80-10-10        17,289,450 ops/sec
144     cbo::HashMap    80-10-10        20,491,816 ops/sec
144     cmr::HashMap    80-10-10        21,900,233 ops/sec
144     std::HashMap    80-10-10        1,161,416 ops/sec
144     cb::HashMap     80-10-10        18,165,866 ops/sec
144     cbo::HashMap    80-10-10        17,171,716 ops/sec
144     cmr::HashMap    80-10-10        21,145,383 ops/sec
144     std::HashMap    80-10-10        1,191,516 ops/sec
144     cb::HashMap     80-10-10        19,066,250 ops/sec
144     cbo::HashMap    80-10-10        19,860,366 ops/sec
144     cmr::HashMap    80-10-10        21,433,550 ops/sec
144     std::HashMap    80-10-10        1,165,166 ops/sec
144     cb::HashMap     80-10-10        20,399,200 ops/sec
144     cbo::HashMap    80-10-10        17,786,833 ops/sec
144     cmr::HashMap    80-10-10        22,189,833 ops/sec
144     std::HashMap    80-10-10        1,152,516 ops/sec
144     cb::HashMap     80-10-10        19,654,316 ops/sec
144     cbo::HashMap    80-10-10        20,099,733 ops/sec
144     cmr::HashMap    80-10-10        20,393,433 ops/sec
144     std::HashMap    80-10-10        1,117,750 ops/sec
144     cb::HashMap     80-10-10        20,111,666 ops/sec
144     cbo::HashMap    80-10-10        17,236,250 ops/sec
144     cmr::HashMap    80-10-10        21,537,650 ops/sec
144     std::HashMap    80-10-10        1,121,100 ops/sec
144     cb::HashMap     80-10-10        17,272,800 ops/sec
144     cbo::HashMap    80-10-10        17,586,100 ops/sec
144     cmr::HashMap    80-10-10        22,420,150 ops/sec
144     std::HashMap    80-10-10        1,189,250 ops/sec
144     cb::HashMap     80-10-10        18,133,466 ops/sec
144     cbo::HashMap    80-10-10        18,554,250 ops/sec

A experimental-data/hm80-t72-box.pdf => experimental-data/hm80-t72-box.pdf +0 -0
D experimental-data/hm80-t72.pdf => experimental-data/hm80-t72.pdf +0 -0
A experimental-data/hmcontains-t1-8-box.pdf => experimental-data/hmcontains-t1-8-box.pdf +0 -0
A experimental-data/hmcontains-t1-8-line.pdf => experimental-data/hmcontains-t1-8-line.pdf +0 -0
A experimental-data/hmcontains-t1-8.raw => experimental-data/hmcontains-t1-8.raw +672 -0
@@ 0,0 1,672 @@
1	cmr::HashMap	contains	1,525,733 ops/sec
1	std::HashMap	contains	7,717,100 ops/sec
1	cb::HashMap	contains	648,800 ops/sec
1	cbo::HashMap	contains	1,322,900 ops/sec
2	cmr::HashMap	contains	4,022,966 ops/sec
2	std::HashMap	contains	2,786,150 ops/sec
2	cb::HashMap	contains	1,269,350 ops/sec
2	cbo::HashMap	contains	2,699,050 ops/sec
3	cmr::HashMap	contains	6,577,400 ops/sec
3	std::HashMap	contains	5,833,500 ops/sec
3	cb::HashMap	contains	1,902,600 ops/sec
3	cbo::HashMap	contains	4,079,300 ops/sec
4	cmr::HashMap	contains	8,918,466 ops/sec
4	std::HashMap	contains	4,628,050 ops/sec
4	cb::HashMap	contains	2,470,650 ops/sec
4	cbo::HashMap	contains	5,430,900 ops/sec
5	cmr::HashMap	contains	10,500,333 ops/sec
5	std::HashMap	contains	4,655,000 ops/sec
5	cb::HashMap	contains	2,771,750 ops/sec
5	cbo::HashMap	contains	6,796,850 ops/sec
6	cmr::HashMap	contains	11,733,616 ops/sec
6	std::HashMap	contains	4,038,150 ops/sec
6	cb::HashMap	contains	3,002,600 ops/sec
6	cbo::HashMap	contains	7,722,450 ops/sec
7	cmr::HashMap	contains	12,966,083 ops/sec
7	std::HashMap	contains	3,599,750 ops/sec
7	cb::HashMap	contains	3,240,300 ops/sec
7	cbo::HashMap	contains	8,601,450 ops/sec
8	cmr::HashMap	contains	11,529,300 ops/sec
8	std::HashMap	contains	3,442,450 ops/sec
8	cb::HashMap	contains	3,403,900 ops/sec
8	cbo::HashMap	contains	9,659,950 ops/sec
1	cmr::HashMap	contains	1,414,766 ops/sec
1	std::HashMap	contains	7,452,350 ops/sec
1	cb::HashMap	contains	625,950 ops/sec
1	cbo::HashMap	contains	1,278,450 ops/sec
1	cmr::HashMap	contains	1,425,900 ops/sec
1	std::HashMap	contains	7,321,850 ops/sec
1	cb::HashMap	contains	627,550 ops/sec
1	cbo::HashMap	contains	1,242,150 ops/sec
1	cmr::HashMap	contains	1,431,100 ops/sec
1	std::HashMap	contains	7,405,200 ops/sec
1	cb::HashMap	contains	606,750 ops/sec
1	cbo::HashMap	contains	1,245,000 ops/sec
1	cmr::HashMap	contains	1,455,500 ops/sec
1	std::HashMap	contains	7,369,350 ops/sec
1	cb::HashMap	contains	601,350 ops/sec
1	cbo::HashMap	contains	1,274,650 ops/sec
1	cmr::HashMap	contains	1,402,616 ops/sec
1	std::HashMap	contains	7,405,900 ops/sec
1	cb::HashMap	contains	613,900 ops/sec
1	cbo::HashMap	contains	1,249,250 ops/sec
1	cmr::HashMap	contains	1,418,350 ops/sec
1	std::HashMap	contains	7,398,600 ops/sec
1	cb::HashMap	contains	604,450 ops/sec
1	cbo::HashMap	contains	1,298,700 ops/sec
1	cmr::HashMap	contains	1,460,016 ops/sec
1	std::HashMap	contains	7,345,300 ops/sec
1	cb::HashMap	contains	617,950 ops/sec
1	cbo::HashMap	contains	1,275,300 ops/sec
1	cmr::HashMap	contains	1,451,000 ops/sec
1	std::HashMap	contains	7,372,300 ops/sec
1	cb::HashMap	contains	618,600 ops/sec
1	cbo::HashMap	contains	1,276,100 ops/sec
1	cmr::HashMap	contains	1,464,783 ops/sec
1	std::HashMap	contains	7,394,950 ops/sec
1	cb::HashMap	contains	620,300 ops/sec
1	cbo::HashMap	contains	1,320,900 ops/sec
1	cmr::HashMap	contains	1,427,866 ops/sec
1	std::HashMap	contains	7,293,350 ops/sec
1	cb::HashMap	contains	630,750 ops/sec
1	cbo::HashMap	contains	1,247,200 ops/sec
2	cmr::HashMap	contains	3,851,566 ops/sec
2	std::HashMap	contains	2,768,400 ops/sec
2	cb::HashMap	contains	1,234,550 ops/sec
2	cbo::HashMap	contains	2,532,650 ops/sec
2	cmr::HashMap	contains	3,862,800 ops/sec
2	std::HashMap	contains	2,841,750 ops/sec
2	cb::HashMap	contains	1,260,650 ops/sec
2	cbo::HashMap	contains	2,618,950 ops/sec
2	cmr::HashMap	contains	3,960,933 ops/sec
2	std::HashMap	contains	2,677,200 ops/sec
2	cb::HashMap	contains	1,240,300 ops/sec
2	cbo::HashMap	contains	2,532,800 ops/sec
2	cmr::HashMap	contains	3,967,933 ops/sec
2	std::HashMap	contains	3,253,500 ops/sec
2	cb::HashMap	contains	1,224,050 ops/sec
2	cbo::HashMap	contains	2,587,850 ops/sec
2	cmr::HashMap	contains	3,881,600 ops/sec
2	std::HashMap	contains	2,897,350 ops/sec
2	cb::HashMap	contains	1,248,950 ops/sec
2	cbo::HashMap	contains	2,621,450 ops/sec
2	cmr::HashMap	contains	3,856,800 ops/sec
2	std::HashMap	contains	2,773,200 ops/sec
2	cb::HashMap	contains	1,242,150 ops/sec
2	cbo::HashMap	contains	2,625,750 ops/sec
2	cmr::HashMap	contains	3,849,933 ops/sec
2	std::HashMap	contains	2,725,300 ops/sec
2	cb::HashMap	contains	1,183,800 ops/sec
2	cbo::HashMap	contains	2,481,000 ops/sec
2	cmr::HashMap	contains	3,926,500 ops/sec
2	std::HashMap	contains	2,768,150 ops/sec
2	cb::HashMap	contains	1,232,350 ops/sec
2	cbo::HashMap	contains	2,567,450 ops/sec
2	cmr::HashMap	contains	3,866,983 ops/sec
2	std::HashMap	contains	2,755,600 ops/sec
2	cb::HashMap	contains	1,158,050 ops/sec
2	cbo::HashMap	contains	2,936,050 ops/sec
2	cmr::HashMap	contains	3,982,533 ops/sec
2	std::HashMap	contains	2,744,300 ops/sec
2	cb::HashMap	contains	1,373,850 ops/sec
2	cbo::HashMap	contains	2,967,700 ops/sec
3	cmr::HashMap	contains	6,225,600 ops/sec
3	std::HashMap	contains	5,981,350 ops/sec
3	cb::HashMap	contains	2,057,550 ops/sec
3	cbo::HashMap	contains	4,455,600 ops/sec
3	cmr::HashMap	contains	6,441,150 ops/sec
3	std::HashMap	contains	6,064,550 ops/sec
3	cb::HashMap	contains	2,071,200 ops/sec
3	cbo::HashMap	contains	4,486,000 ops/sec
3	cmr::HashMap	contains	6,238,100 ops/sec
3	std::HashMap	contains	5,689,650 ops/sec
3	cb::HashMap	contains	2,076,250 ops/sec
3	cbo::HashMap	contains	4,451,000 ops/sec
3	cmr::HashMap	contains	6,226,400 ops/sec
3	std::HashMap	contains	6,032,550 ops/sec
3	cb::HashMap	contains	2,039,050 ops/sec
3	cbo::HashMap	contains	4,411,400 ops/sec
3	cmr::HashMap	contains	6,297,700 ops/sec
3	std::HashMap	contains	6,047,850 ops/sec
3	cb::HashMap	contains	2,068,450 ops/sec
3	cbo::HashMap	contains	4,380,300 ops/sec
3	cmr::HashMap	contains	6,282,150 ops/sec
3	std::HashMap	contains	5,944,750 ops/sec
3	cb::HashMap	contains	2,056,550 ops/sec
3	cbo::HashMap	contains	4,338,100 ops/sec
3	cmr::HashMap	contains	6,226,150 ops/sec
3	std::HashMap	contains	6,043,900 ops/sec
3	cb::HashMap	contains	2,058,900 ops/sec
3	cbo::HashMap	contains	4,376,700 ops/sec
3	cmr::HashMap	contains	6,362,900 ops/sec
3	std::HashMap	contains	5,914,600 ops/sec
3	cb::HashMap	contains	2,058,700 ops/sec
3	cbo::HashMap	contains	4,362,850 ops/sec
3	cmr::HashMap	contains	6,323,400 ops/sec
3	std::HashMap	contains	5,867,900 ops/sec
3	cb::HashMap	contains	2,043,350 ops/sec
3	cbo::HashMap	contains	4,414,350 ops/sec
3	cmr::HashMap	contains	6,310,516 ops/sec
3	std::HashMap	contains	6,106,300 ops/sec
3	cb::HashMap	contains	2,045,950 ops/sec
3	cbo::HashMap	contains	4,431,350 ops/sec
4	cmr::HashMap	contains	8,589,866 ops/sec
4	std::HashMap	contains	4,735,600 ops/sec
4	cb::HashMap	contains	2,699,200 ops/sec
4	cbo::HashMap	contains	5,855,900 ops/sec
4	cmr::HashMap	contains	8,621,333 ops/sec
4	std::HashMap	contains	4,154,700 ops/sec
4	cb::HashMap	contains	2,687,800 ops/sec
4	cbo::HashMap	contains	5,832,500 ops/sec
4	cmr::HashMap	contains	8,533,150 ops/sec
4	std::HashMap	contains	4,264,800 ops/sec
4	cb::HashMap	contains	2,683,100 ops/sec
4	cbo::HashMap	contains	5,839,900 ops/sec
4	cmr::HashMap	contains	8,695,716 ops/sec
4	std::HashMap	contains	4,286,500 ops/sec
4	cb::HashMap	contains	2,546,200 ops/sec
4	cbo::HashMap	contains	5,564,550 ops/sec
4	cmr::HashMap	contains	8,731,033 ops/sec
4	std::HashMap	contains	3,340,700 ops/sec
4	cb::HashMap	contains	2,319,350 ops/sec
4	cbo::HashMap	contains	5,216,400 ops/sec
4	cmr::HashMap	contains	9,397,000 ops/sec
4	std::HashMap	contains	4,300,000 ops/sec
4	cb::HashMap	contains	2,279,150 ops/sec
4	cbo::HashMap	contains	5,030,950 ops/sec
4	cmr::HashMap	contains	8,739,600 ops/sec
4	std::HashMap	contains	4,055,550 ops/sec
4	cb::HashMap	contains	2,322,150 ops/sec
4	cbo::HashMap	contains	5,082,650 ops/sec
4	cmr::HashMap	contains	8,546,733 ops/sec
4	std::HashMap	contains	4,258,550 ops/sec
4	cb::HashMap	contains	2,281,400 ops/sec
4	cbo::HashMap	contains	5,066,950 ops/sec
4	cmr::HashMap	contains	8,737,866 ops/sec
4	std::HashMap	contains	4,426,000 ops/sec
4	cb::HashMap	contains	2,300,900 ops/sec
4	cbo::HashMap	contains	5,030,100 ops/sec
4	cmr::HashMap	contains	8,975,333 ops/sec
4	std::HashMap	contains	3,990,300 ops/sec
4	cb::HashMap	contains	2,313,550 ops/sec
4	cbo::HashMap	contains	5,038,550 ops/sec
5	cmr::HashMap	contains	10,392,416 ops/sec
5	std::HashMap	contains	4,308,450 ops/sec
5	cb::HashMap	contains	2,606,650 ops/sec
5	cbo::HashMap	contains	6,440,500 ops/sec
5	cmr::HashMap	contains	10,277,666 ops/sec
5	std::HashMap	contains	4,369,550 ops/sec
5	cb::HashMap	contains	2,623,150 ops/sec
5	cbo::HashMap	contains	6,384,550 ops/sec
5	cmr::HashMap	contains	10,213,083 ops/sec
5	std::HashMap	contains	4,415,250 ops/sec
5	cb::HashMap	contains	2,574,450 ops/sec
5	cbo::HashMap	contains	6,246,350 ops/sec
5	cmr::HashMap	contains	10,377,083 ops/sec
5	std::HashMap	contains	4,299,450 ops/sec
5	cb::HashMap	contains	2,649,400 ops/sec
5	cbo::HashMap	contains	6,405,550 ops/sec
5	cmr::HashMap	contains	10,149,316 ops/sec
5	std::HashMap	contains	4,126,100 ops/sec
5	cb::HashMap	contains	2,643,100 ops/sec
5	cbo::HashMap	contains	6,386,600 ops/sec
5	cmr::HashMap	contains	10,342,500 ops/sec
5	std::HashMap	contains	4,158,200 ops/sec
5	cb::HashMap	contains	2,580,600 ops/sec
5	cbo::HashMap	contains	6,350,850 ops/sec
5	cmr::HashMap	contains	10,479,166 ops/sec
5	std::HashMap	contains	4,125,050 ops/sec
5	cb::HashMap	contains	2,610,400 ops/sec
5	cbo::HashMap	contains	6,380,450 ops/sec
5	cmr::HashMap	contains	10,364,333 ops/sec
5	std::HashMap	contains	4,334,850 ops/sec
5	cb::HashMap	contains	2,605,900 ops/sec
5	cbo::HashMap	contains	6,358,800 ops/sec
5	cmr::HashMap	contains	10,367,666 ops/sec
5	std::HashMap	contains	4,342,100 ops/sec
5	cb::HashMap	contains	2,602,950 ops/sec
5	cbo::HashMap	contains	6,362,850 ops/sec
5	cmr::HashMap	contains	10,556,416 ops/sec
5	std::HashMap	contains	4,436,250 ops/sec
5	cb::HashMap	contains	2,588,300 ops/sec
5	cbo::HashMap	contains	6,270,750 ops/sec
6	cmr::HashMap	contains	11,381,016 ops/sec
6	std::HashMap	contains	3,709,200 ops/sec
6	cb::HashMap	contains	2,862,300 ops/sec
6	cbo::HashMap	contains	7,510,300 ops/sec
6	cmr::HashMap	contains	11,612,183 ops/sec
6	std::HashMap	contains	3,869,200 ops/sec
6	cb::HashMap	contains	2,864,900 ops/sec
6	cbo::HashMap	contains	7,500,000 ops/sec
6	cmr::HashMap	contains	11,620,200 ops/sec
6	std::HashMap	contains	3,772,750 ops/sec
6	cb::HashMap	contains	2,889,950 ops/sec
6	cbo::HashMap	contains	7,505,350 ops/sec
6	cmr::HashMap	contains	11,248,250 ops/sec
6	std::HashMap	contains	3,754,400 ops/sec
6	cb::HashMap	contains	2,871,700 ops/sec
6	cbo::HashMap	contains	7,476,300 ops/sec
6	cmr::HashMap	contains	11,668,500 ops/sec
6	std::HashMap	contains	3,817,100 ops/sec
6	cb::HashMap	contains	2,794,500 ops/sec
6	cbo::HashMap	contains	7,497,900 ops/sec
6	cmr::HashMap	contains	11,478,100 ops/sec
6	std::HashMap	contains	3,834,350 ops/sec
6	cb::HashMap	contains	2,877,450 ops/sec
6	cbo::HashMap	contains	7,502,500 ops/sec
6	cmr::HashMap	contains	10,781,500 ops/sec
6	std::HashMap	contains	3,712,200 ops/sec
6	cb::HashMap	contains	2,887,250 ops/sec
6	cbo::HashMap	contains	7,499,250 ops/sec
6	cmr::HashMap	contains	11,762,016 ops/sec
6	std::HashMap	contains	3,884,700 ops/sec
6	cb::HashMap	contains	2,876,150 ops/sec
6	cbo::HashMap	contains	7,528,850 ops/sec
6	cmr::HashMap	contains	10,327,283 ops/sec
6	std::HashMap	contains	3,953,850 ops/sec
6	cb::HashMap	contains	2,889,100 ops/sec
6	cbo::HashMap	contains	7,538,950 ops/sec
6	cmr::HashMap	contains	11,216,633 ops/sec
6	std::HashMap	contains	3,878,150 ops/sec
6	cb::HashMap	contains	2,893,650 ops/sec
6	cbo::HashMap	contains	7,494,000 ops/sec
7	cmr::HashMap	contains	10,980,983 ops/sec
7	std::HashMap	contains	3,756,850 ops/sec
7	cb::HashMap	contains	3,010,500 ops/sec
7	cbo::HashMap	contains	8,403,750 ops/sec
7	cmr::HashMap	contains	10,939,616 ops/sec
7	std::HashMap	contains	3,598,250 ops/sec
7	cb::HashMap	contains	3,007,800 ops/sec
7	cbo::HashMap	contains	8,299,850 ops/sec
7	cmr::HashMap	contains	11,590,750 ops/sec
7	std::HashMap	contains	3,577,200 ops/sec
7	cb::HashMap	contains	3,139,050 ops/sec
7	cbo::HashMap	contains	8,331,250 ops/sec
7	cmr::HashMap	contains	11,825,366 ops/sec
7	std::HashMap	contains	3,619,650 ops/sec
7	cb::HashMap	contains	3,066,350 ops/sec
7	cbo::HashMap	contains	8,366,400 ops/sec
7	cmr::HashMap	contains	11,113,183 ops/sec
7	std::HashMap	contains	3,560,350 ops/sec
7	cb::HashMap	contains	3,032,950 ops/sec
7	cbo::HashMap	contains	8,350,250 ops/sec
7	cmr::HashMap	contains	10,552,183 ops/sec
7	std::HashMap	contains	3,558,800 ops/sec
7	cb::HashMap	contains	3,054,400 ops/sec
7	cbo::HashMap	contains	8,447,500 ops/sec
7	cmr::HashMap	contains	11,832,100 ops/sec
7	std::HashMap	contains	3,553,950 ops/sec
7	cb::HashMap	contains	3,044,700 ops/sec
7	cbo::HashMap	contains	8,431,800 ops/sec
7	cmr::HashMap	contains	11,057,850 ops/sec
7	std::HashMap	contains	3,609,100 ops/sec
7	cb::HashMap	contains	3,072,150 ops/sec
7	cbo::HashMap	contains	8,359,150 ops/sec
7	cmr::HashMap	contains	12,425,133 ops/sec
7	std::HashMap	contains	3,747,650 ops/sec
7	cb::HashMap	contains	3,027,600 ops/sec
7	cbo::HashMap	contains	8,381,200 ops/sec
7	cmr::HashMap	contains	11,048,750 ops/sec
7	std::HashMap	contains	3,624,300 ops/sec
7	cb::HashMap	contains	3,118,050 ops/sec
7	cbo::HashMap	contains	8,354,550 ops/sec
8	cmr::HashMap	contains	10,714,600 ops/sec
8	std::HashMap	contains	3,397,800 ops/sec
8	cb::HashMap	contains	3,266,100 ops/sec
8	cbo::HashMap	contains	9,384,050 ops/sec
8	cmr::HashMap	contains	10,869,950 ops/sec
8	std::HashMap	contains	3,465,100 ops/sec
8	cb::HashMap	contains	3,207,650 ops/sec
8	cbo::HashMap	contains	9,176,250 ops/sec
8	cmr::HashMap	contains	11,955,516 ops/sec
8	std::HashMap	contains	3,476,500 ops/sec
8	cb::HashMap	contains	3,234,500 ops/sec
8	cbo::HashMap	contains	9,389,500 ops/sec
8	cmr::HashMap	contains	11,690,766 ops/sec
8	std::HashMap	contains	3,478,300 ops/sec
8	cb::HashMap	contains	3,170,550 ops/sec
8	cbo::HashMap	contains	9,155,950 ops/sec
8	cmr::HashMap	contains	10,736,600 ops/sec
8	std::HashMap	contains	3,467,900 ops/sec
8	cb::HashMap	contains	3,226,100 ops/sec
8	cbo::HashMap	contains	9,133,350 ops/sec
8	cmr::HashMap	contains	12,791,000 ops/sec
8	std::HashMap	contains	3,411,150 ops/sec
8	cb::HashMap	contains	3,199,500 ops/sec
8	cbo::HashMap	contains	9,379,900 ops/sec
8	cmr::HashMap	contains	11,029,833 ops/sec
8	std::HashMap	contains	3,385,750 ops/sec
8	cb::HashMap	contains	3,191,350 ops/sec
8	cbo::HashMap	contains	9,427,400 ops/sec
8	cmr::HashMap	contains	11,582,366 ops/sec
8	std::HashMap	contains	3,465,550 ops/sec
8	cb::HashMap	contains	3,229,800 ops/sec
8	cbo::HashMap	contains	9,419,800 ops/sec
8	cmr::HashMap	contains	11,219,716 ops/sec
8	std::HashMap	contains	3,451,450 ops/sec
8	cb::HashMap	contains	3,178,550 ops/sec
8	cbo::HashMap	contains	9,250,650 ops/sec
8	cmr::HashMap	contains	10,230,150 ops/sec
8	std::HashMap	contains	3,443,600 ops/sec
8	cb::HashMap	contains	3,063,450 ops/sec
8	cbo::HashMap	contains	9,189,250 ops/sec
1	cmr::HashMap	contains	1,531,066 ops/sec
1	std::HashMap	contains	6,955,450 ops/sec
1	cb::HashMap	contains	678,000 ops/sec
1	cbo::HashMap	contains	1,405,750 ops/sec
1	cmr::HashMap	contains	1,624,300 ops/sec
1	std::HashMap	contains	6,930,000 ops/sec
1	cb::HashMap	contains	675,300 ops/sec
1	cbo::HashMap	contains	1,398,100 ops/sec
1	cmr::HashMap	contains	1,663,033 ops/sec
1	std::HashMap	contains	6,976,250 ops/sec
1	cb::HashMap	contains	673,850 ops/sec
1	cbo::HashMap	contains	1,408,700 ops/sec
1	cmr::HashMap	contains	1,618,216 ops/sec
1	std::HashMap	contains	6,995,450 ops/sec
1	cb::HashMap	contains	679,150 ops/sec
1	cbo::HashMap	contains	1,411,600 ops/sec
1	cmr::HashMap	contains	1,628,050 ops/sec
1	std::HashMap	contains	7,019,150 ops/sec
1	cb::HashMap	contains	680,550 ops/sec
1	cbo::HashMap	contains	1,393,300 ops/sec
1	cmr::HashMap	contains	1,639,600 ops/sec
1	std::HashMap	contains	7,021,550 ops/sec
1	cb::HashMap	contains	677,250 ops/sec
1	cbo::HashMap	contains	1,408,850 ops/sec
1	cmr::HashMap	contains	1,663,066 ops/sec
1	std::HashMap	contains	6,955,600 ops/sec
1	cb::HashMap	contains	676,050 ops/sec
1	cbo::HashMap	contains	1,403,850 ops/sec
1	cmr::HashMap	contains	1,635,166 ops/sec
1	std::HashMap	contains	7,012,500 ops/sec
1	cb::HashMap	contains	674,150 ops/sec
1	cbo::HashMap	contains	1,409,050 ops/sec
1	cmr::HashMap	contains	1,635,550 ops/sec
1	std::HashMap	contains	7,018,600 ops/sec
1	cb::HashMap	contains	674,050 ops/sec
1	cbo::HashMap	contains	1,413,850 ops/sec
1	cmr::HashMap	contains	1,647,450 ops/sec
1	std::HashMap	contains	7,020,200 ops/sec
1	cb::HashMap	contains	682,000 ops/sec
1	cbo::HashMap	contains	1,411,950 ops/sec
2	cmr::HashMap	contains	3,948,300 ops/sec
2	std::HashMap	contains	6,476,100 ops/sec
2	cb::HashMap	contains	1,384,150 ops/sec
2	cbo::HashMap	contains	2,988,700 ops/sec
2	cmr::HashMap	contains	3,864,333 ops/sec
2	std::HashMap	contains	6,218,750 ops/sec
2	cb::HashMap	contains	1,397,550 ops/sec
2	cbo::HashMap	contains	3,008,550 ops/sec
2	cmr::HashMap	contains	3,902,350 ops/sec
2	std::HashMap	contains	6,405,300 ops/sec
2	cb::HashMap	contains	1,405,700 ops/sec
2	cbo::HashMap	contains	2,982,750 ops/sec
2	cmr::HashMap	contains	3,851,000 ops/sec
2	std::HashMap	contains	6,510,600 ops/sec
2	cb::HashMap	contains	1,409,550 ops/sec
2	cbo::HashMap	contains	3,012,900 ops/sec
2	cmr::HashMap	contains	3,846,633 ops/sec
2	std::HashMap	contains	6,251,900 ops/sec
2	cb::HashMap	contains	1,384,000 ops/sec
2	cbo::HashMap	contains	3,011,050 ops/sec
2	cmr::HashMap	contains	3,830,966 ops/sec
2	std::HashMap	contains	6,163,100 ops/sec
2	cb::HashMap	contains	1,405,650 ops/sec
2	cbo::HashMap	contains	2,975,400 ops/sec
2	cmr::HashMap	contains	3,883,000 ops/sec
2	std::HashMap	contains	6,362,150 ops/sec
2	cb::HashMap	contains	1,399,750 ops/sec
2	cbo::HashMap	contains	2,968,850 ops/sec
2	cmr::HashMap	contains	3,901,500 ops/sec
2	std::HashMap	contains	6,609,400 ops/sec
2	cb::HashMap	contains	1,392,350 ops/sec
2	cbo::HashMap	contains	2,999,850 ops/sec
2	cmr::HashMap	contains	3,878,366 ops/sec
2	std::HashMap	contains	6,372,800 ops/sec
2	cb::HashMap	contains	1,390,000 ops/sec
2	cbo::HashMap	contains	3,005,500 ops/sec
2	cmr::HashMap	contains	3,908,066 ops/sec
2	std::HashMap	contains	6,419,250 ops/sec
2	cb::HashMap	contains	1,414,050 ops/sec
2	cbo::HashMap	contains	2,968,150 ops/sec
3	cmr::HashMap	contains	6,231,850 ops/sec
3	std::HashMap	contains	6,541,700 ops/sec
3	cb::HashMap	contains	2,068,600 ops/sec
3	cbo::HashMap	contains	4,560,000 ops/sec
3	cmr::HashMap	contains	6,276,250 ops/sec
3	std::HashMap	contains	6,819,450 ops/sec
3	cb::HashMap	contains	2,076,950 ops/sec
3	cbo::HashMap	contains	4,434,800 ops/sec
3	cmr::HashMap	contains	6,112,050 ops/sec
3	std::HashMap	contains	6,809,950 ops/sec
3	cb::HashMap	contains	2,076,550 ops/sec
3	cbo::HashMap	contains	4,434,100 ops/sec
3	cmr::HashMap	contains	6,195,100 ops/sec
3	std::HashMap	contains	6,938,150 ops/sec
3	cb::HashMap	contains	2,059,100 ops/sec
3	cbo::HashMap	contains	4,497,850 ops/sec
3	cmr::HashMap	contains	6,106,250 ops/sec
3	std::HashMap	contains	6,771,100 ops/sec
3	cb::HashMap	contains	2,104,450 ops/sec
3	cbo::HashMap	contains	4,487,450 ops/sec
3	cmr::HashMap	contains	6,284,616 ops/sec
3	std::HashMap	contains	6,938,700 ops/sec
3	cb::HashMap	contains	2,067,700 ops/sec
3	cbo::HashMap	contains	4,506,900 ops/sec
3	cmr::HashMap	contains	6,164,900 ops/sec
3	std::HashMap	contains	6,698,850 ops/sec
3	cb::HashMap	contains	2,078,600 ops/sec
3	cbo::HashMap	contains	4,502,750 ops/sec
3	cmr::HashMap	contains	6,238,500 ops/sec
3	std::HashMap	contains	6,551,350 ops/sec
3	cb::HashMap	contains	2,057,650 ops/sec
3	cbo::HashMap	contains	4,557,000 ops/sec
3	cmr::HashMap	contains	6,256,050 ops/sec
3	std::HashMap	contains	6,725,500 ops/sec
3	cb::HashMap	contains	2,110,150 ops/sec
3	cbo::HashMap	contains	4,428,500 ops/sec
3	cmr::HashMap	contains	6,117,450 ops/sec
3	std::HashMap	contains	6,705,750 ops/sec
3	cb::HashMap	contains	2,052,050 ops/sec
3	cbo::HashMap	contains	4,436,200 ops/sec
4	cmr::HashMap	contains	9,213,833 ops/sec
4	std::HashMap	contains	6,990,850 ops/sec
4	cb::HashMap	contains	2,753,150 ops/sec
4	cbo::HashMap	contains	5,872,150 ops/sec
4	cmr::HashMap	contains	8,644,866 ops/sec
4	std::HashMap	contains	6,999,450 ops/sec
4	cb::HashMap	contains	2,734,750 ops/sec
4	cbo::HashMap	contains	5,903,500 ops/sec
4	cmr::HashMap	contains	8,567,266 ops/sec
4	std::HashMap	contains	7,051,600 ops/sec
4	cb::HashMap	contains	2,763,650 ops/sec
4	cbo::HashMap	contains	5,908,400 ops/sec
4	cmr::HashMap	contains	8,392,600 ops/sec
4	std::HashMap	contains	7,008,350 ops/sec
4	cb::HashMap	contains	2,735,650 ops/sec
4	cbo::HashMap	contains	5,875,050 ops/sec
4	cmr::HashMap	contains	8,610,600 ops/sec
4	std::HashMap	contains	6,905,250 ops/sec
4	cb::HashMap	contains	2,734,000 ops/sec
4	cbo::HashMap	contains	5,909,450 ops/sec
4	cmr::HashMap	contains	8,742,266 ops/sec
4	std::HashMap	contains	6,936,350 ops/sec
4	cb::HashMap	contains	2,738,850 ops/sec
4	cbo::HashMap	contains	5,913,450 ops/sec
4	cmr::HashMap	contains	8,932,133 ops/sec
4	std::HashMap	contains	6,883,200 ops/sec
4	cb::HashMap	contains	2,731,300 ops/sec
4	cbo::HashMap	contains	5,886,650 ops/sec
4	cmr::HashMap	contains	8,718,000 ops/sec
4	std::HashMap	contains	6,911,050 ops/sec
4	cb::HashMap	contains	2,728,850 ops/sec
4	cbo::HashMap	contains	5,883,100 ops/sec
4	cmr::HashMap	contains	8,624,533 ops/sec
4	std::HashMap	contains	6,967,350 ops/sec
4	cb::HashMap	contains	2,716,100 ops/sec
4	cbo::HashMap	contains	5,849,250 ops/sec
4	cmr::HashMap	contains	8,579,266 ops/sec
4	std::HashMap	contains	6,980,800 ops/sec
4	cb::HashMap	contains	2,719,500 ops/sec
4	cbo::HashMap	contains	5,869,400 ops/sec
5	cmr::HashMap	contains	10,239,833 ops/sec
5	std::HashMap	contains	7,714,750 ops/sec
5	cb::HashMap	contains	3,136,900 ops/sec
5	cbo::HashMap	contains	6,995,600 ops/sec
5	cmr::HashMap	contains	10,484,750 ops/sec
5	std::HashMap	contains	7,687,350 ops/sec
5	cb::HashMap	contains	3,020,850 ops/sec
5	cbo::HashMap	contains	7,000,000 ops/sec
5	cmr::HashMap	contains	10,306,250 ops/sec
5	std::HashMap	contains	7,203,350 ops/sec
5	cb::HashMap	contains	3,084,150 ops/sec
5	cbo::HashMap	contains	7,009,750 ops/sec
5	cmr::HashMap	contains	10,151,500 ops/sec
5	std::HashMap	contains	7,683,050 ops/sec
5	cb::HashMap	contains	3,091,800 ops/sec
5	cbo::HashMap	contains	6,986,500 ops/sec
5	cmr::HashMap	contains	10,404,916 ops/sec
5	std::HashMap	contains	7,258,800 ops/sec
5	cb::HashMap	contains	3,038,600 ops/sec
5	cbo::HashMap	contains	7,020,750 ops/sec
5	cmr::HashMap	contains	10,353,433 ops/sec
5	std::HashMap	contains	7,265,300 ops/sec
5	cb::HashMap	contains	3,061,850 ops/sec
5	cbo::HashMap	contains	6,951,800 ops/sec
5	cmr::HashMap	contains	10,355,750 ops/sec
5	std::HashMap	contains	7,282,500 ops/sec
5	cb::HashMap	contains	3,117,200 ops/sec
5	cbo::HashMap	contains	6,986,700 ops/sec
5	cmr::HashMap	contains	10,281,316 ops/sec
5	std::HashMap	contains	7,289,000 ops/sec
5	cb::HashMap	contains	3,073,550 ops/sec
5	cbo::HashMap	contains	6,959,000 ops/sec
5	cmr::HashMap	contains	10,214,250 ops/sec
5	std::HashMap	contains	7,262,050 ops/sec
5	cb::HashMap	contains	3,117,100 ops/sec
5	cbo::HashMap	contains	6,990,000 ops/sec
5	cmr::HashMap	contains	10,227,583 ops/sec
5	std::HashMap	contains	7,107,400 ops/sec
5	cb::HashMap	contains	3,061,750 ops/sec
5	cbo::HashMap	contains	7,002,250 ops/sec
6	cmr::HashMap	contains	11,230,616 ops/sec
6	std::HashMap	contains	8,013,300 ops/sec
6	cb::HashMap	contains	3,394,750 ops/sec
6	cbo::HashMap	contains	7,865,100 ops/sec
6	cmr::HashMap	contains	11,718,433 ops/sec
6	std::HashMap	contains	7,508,800 ops/sec
6	cb::HashMap	contains	3,394,350 ops/sec
6	cbo::HashMap	contains	7,935,050 ops/sec
6	cmr::HashMap	contains	11,228,400 ops/sec
6	std::HashMap	contains	7,908,150 ops/sec
6	cb::HashMap	contains	3,364,350 ops/sec
6	cbo::HashMap	contains	7,936,600 ops/sec
6	cmr::HashMap	contains	11,517,816 ops/sec
6	std::HashMap	contains	7,484,150 ops/sec
6	cb::HashMap	contains	3,355,250 ops/sec
6	cbo::HashMap	contains	7,921,650 ops/sec
6	cmr::HashMap	contains	11,330,900 ops/sec
6	std::HashMap	contains	7,976,200 ops/sec
6	cb::HashMap	contains	3,359,650 ops/sec
6	cbo::HashMap	contains	7,889,650 ops/sec
6	cmr::HashMap	contains	11,602,466 ops/sec
6	std::HashMap	contains	7,473,050 ops/sec
6	cb::HashMap	contains	3,395,550 ops/sec
6	cbo::HashMap	contains	7,875,750 ops/sec
6	cmr::HashMap	contains	11,648,100 ops/sec
6	std::HashMap	contains	7,773,000 ops/sec
6	cb::HashMap	contains	3,377,900 ops/sec
6	cbo::HashMap	contains	7,937,900 ops/sec
6	cmr::HashMap	contains	10,869,000 ops/sec
6	std::HashMap	contains	7,541,800 ops/sec
6	cb::HashMap	contains	3,377,350 ops/sec
6	cbo::HashMap	contains	7,896,450 ops/sec
6	cmr::HashMap	contains	11,495,033 ops/sec
6	std::HashMap	contains	7,971,200 ops/sec
6	cb::HashMap	contains	3,354,500 ops/sec
6	cbo::HashMap	contains	7,869,950 ops/sec
6	cmr::HashMap	contains	10,384,016 ops/sec
6	std::HashMap	contains	7,481,000 ops/sec
6	cb::HashMap	contains	3,403,250 ops/sec
6	cbo::HashMap	contains	7,857,900 ops/sec
7	cmr::HashMap	contains	11,582,966 ops/sec
7	std::HashMap	contains	7,491,450 ops/sec
7	cb::HashMap	contains	3,644,700 ops/sec
7	cbo::HashMap	contains	9,109,750 ops/sec
7	cmr::HashMap	contains	12,463,216 ops/sec
7	std::HashMap	contains	8,098,150 ops/sec
7	cb::HashMap	contains	3,632,800 ops/sec
7	cbo::HashMap	contains	9,031,400 ops/sec
7	cmr::HashMap	contains	11,050,300 ops/sec
7	std::HashMap	contains	7,741,800 ops/sec
7	cb::HashMap	contains	3,637,750 ops/sec
7	cbo::HashMap	contains	9,018,900 ops/sec
7	cmr::HashMap	contains	12,846,600 ops/sec
7	std::HashMap	contains	7,652,000 ops/sec
7	cb::HashMap	contains	3,645,900 ops/sec
7	cbo::HashMap	contains	8,913,050 ops/sec
7	cmr::HashMap	contains	10,460,950 ops/sec
7	std::HashMap	contains	7,566,050 ops/sec
7	cb::HashMap	contains	3,586,200 ops/sec
7	cbo::HashMap	contains	9,019,200 ops/sec
7	cmr::HashMap	contains	11,732,766 ops/sec
7	std::HashMap	contains	8,171,900 ops/sec
7	cb::HashMap	contains	3,669,550 ops/sec
7	cbo::HashMap	contains	8,848,650 ops/sec
7	cmr::HashMap	contains	12,220,483 ops/sec
7	std::HashMap	contains	8,433,100 ops/sec
7	cb::HashMap	contains	3,630,700 ops/sec
7	cbo::HashMap	contains	9,091,600 ops/sec
7	cmr::HashMap	contains	12,512,150 ops/sec
7	std::HashMap	contains	7,744,850 ops/sec
7	cb::HashMap	contains	3,643,950 ops/sec
7	cbo::HashMap	contains	8,983,550 ops/sec
7	cmr::HashMap	contains	13,494,083 ops/sec
7	std::HashMap	contains	8,180,150 ops/sec
7	cb::HashMap	contains	3,600,350 ops/sec
7	cbo::HashMap	contains	9,108,850 ops/sec
7	cmr::HashMap	contains	11,027,533 ops/sec
7	std::HashMap	contains	8,638,350 ops/sec
7	cb::HashMap	contains	3,626,800 ops/sec
7	cbo::HashMap	contains	9,102,350 ops/sec
8	cmr::HashMap	contains	11,770,716 ops/sec
8	std::HashMap	contains	8,597,350 ops/sec
8	cb::HashMap	contains	3,825,500 ops/sec
8	cbo::HashMap	contains	9,966,450 ops/sec
8	cmr::HashMap	contains	12,616,216 ops/sec
8	std::HashMap	contains	7,669,000 ops/sec
8	cb::HashMap	contains	3,853,600 ops/sec
8	cbo::HashMap	contains	9,686,800 ops/sec
8	cmr::HashMap	contains	11,194,333 ops/sec
8	std::HashMap	contains	8,538,850 ops/sec
8	cb::HashMap	contains	3,889,550 ops/sec
8	cbo::HashMap	contains	9,971,250 ops/sec
8	cmr::HashMap	contains	13,205,183 ops/sec
8	std::HashMap	contains	7,642,150 ops/sec
8	cb::HashMap	contains	3,803,050 ops/sec
8	cbo::HashMap	contains	9,913,050 ops/sec
8	cmr::HashMap	contains	12,223,533 ops/sec
8	std::HashMap	contains	8,290,250 ops/sec
8	cb::HashMap	contains	3,819,950 ops/sec
8	cbo::HashMap	contains	9,775,100 ops/sec
8	cmr::HashMap	contains	11,385,916 ops/sec
8	std::HashMap	contains	7,607,150 ops/sec
8	cb::HashMap	contains	3,795,950 ops/sec
8	cbo::HashMap	contains	9,975,600 ops/sec
8	cmr::HashMap	contains	12,856,283 ops/sec
8	std::HashMap	contains	7,587,500 ops/sec
8	cb::HashMap	contains	3,834,600 ops/sec
8	cbo::HashMap	contains	9,901,200 ops/sec
8	cmr::HashMap	contains	12,969,316 ops/sec
8	std::HashMap	contains	8,358,950 ops/sec
8	cb::HashMap	contains	3,819,400 ops/sec
8	cbo::HashMap	contains	10,018,600 ops/sec
8	cmr::HashMap	contains	12,133,133 ops/sec
8	std::HashMap	contains	8,714,800 ops/sec
8	cb::HashMap	contains	3,838,600 ops/sec
8	cbo::HashMap	contains	9,682,500 ops/sec
8	cmr::HashMap	contains	11,799,833 ops/sec
8	std::HashMap	contains	8,694,350 ops/sec
8	cb::HashMap	contains	3,845,200 ops/sec
8	cbo::HashMap	contains	9,995,800 ops/sec

A experimental-data/hminsert-t1-8-box.pdf => experimental-data/hminsert-t1-8-box.pdf +0 -0
A experimental-data/hminsert-t1-8-line.pdf => experimental-data/hminsert-t1-8-line.pdf +0 -0
A experimental-data/hminsert-t1-8.raw => experimental-data/hminsert-t1-8.raw +714 -0
@@ 0,0 1,714 @@
1	cmr::HashMap	insert	978,300 ops/sec
1	cbo::HashMap	insert	1,251,000 ops/sec
2	cmr::HashMap	insert	1,962,233 ops/sec
2	cbo::HashMap	insert	2,254,800 ops/sec
3	cmr::HashMap	insert	2,870,400 ops/sec
3	cbo::HashMap	insert	3,167,100 ops/sec
4	cmr::HashMap	insert	3,714,983 ops/sec
4	cbo::HashMap	insert	4,008,000 ops/sec
5	cmr::HashMap	insert	3,941,950 ops/sec
5	cbo::HashMap	insert	4,689,000 ops/sec
6	cmr::HashMap	insert	4,080,883 ops/sec
6	cbo::HashMap	insert	5,349,950 ops/sec
7	cmr::HashMap	insert	4,825,200 ops/sec
7	cbo::HashMap	insert	5,874,150 ops/sec
8	cmr::HashMap	insert	4,840,116 ops/sec
8	cbo::HashMap	insert	6,351,300 ops/sec
1	cmr::HashMap	insert	965,600 ops/sec
1	std::HashMap	insert	3,758,050 ops/sec
1	cb::HashMap	insert	792,200 ops/sec
1	cbo::HashMap	insert	1,254,650 ops/sec
1	cmr::HashMap	insert	968,216 ops/sec
1	std::HashMap	insert	3,750,450 ops/sec
1	cb::HashMap	insert	781,700 ops/sec
1	cbo::HashMap	insert	1,240,350 ops/sec
1	cmr::HashMap	insert	985,866 ops/sec
1	std::HashMap	insert	3,778,700 ops/sec
1	cb::HashMap	insert	803,250 ops/sec
1	cbo::HashMap	insert	1,254,400 ops/sec
1	cmr::HashMap	insert	985,750 ops/sec
1	std::HashMap	insert	3,762,450 ops/sec
1	cb::HashMap	insert	789,000 ops/sec
1	cbo::HashMap	insert	1,248,250 ops/sec
1	cmr::HashMap	insert	963,766 ops/sec
1	std::HashMap	insert	3,749,450 ops/sec
1	cb::HashMap	insert	799,800 ops/sec
1	cbo::HashMap	insert	1,255,200 ops/sec
1	cmr::HashMap	insert	980,583 ops/sec
1	std::HashMap	insert	3,762,700 ops/sec
1	cb::HashMap	insert	798,050 ops/sec
1	cbo::HashMap	insert	1,264,300 ops/sec
1	cmr::HashMap	insert	971,183 ops/sec
1	std::HashMap	insert	3,767,450 ops/sec
1	cb::HashMap	insert	802,650 ops/sec
1	cbo::HashMap	insert	1,262,150 ops/sec
1	cmr::HashMap	insert	977,900 ops/sec
1	std::HashMap	insert	3,763,450 ops/sec
1	cb::HashMap	insert	790,100 ops/sec
1	cbo::HashMap	insert	1,252,000 ops/sec
1	cmr::HashMap	insert	982,466 ops/sec
1	std::HashMap	insert	3,790,800 ops/sec
1	cb::HashMap	insert	803,700 ops/sec
1	cbo::HashMap	insert	1,257,550 ops/sec
1	cmr::HashMap	insert	988,483 ops/sec
1	std::HashMap	insert	3,789,100 ops/sec
1	cb::HashMap	insert	796,350 ops/sec
1	cbo::HashMap	insert	1,261,400 ops/sec
2	cmr::HashMap	insert	1,862,233 ops/sec
2	std::HashMap	insert	1,883,600 ops/sec
2	cb::HashMap	insert	1,313,900 ops/sec
2	cbo::HashMap	insert	2,273,750 ops/sec
2	cmr::HashMap	insert	1,913,733 ops/sec
2	std::HashMap	insert	1,879,700 ops/sec
2	cb::HashMap	insert	1,325,400 ops/sec
2	cbo::HashMap	insert	2,258,550 ops/sec
2	cmr::HashMap	insert	1,867,066 ops/sec
2	std::HashMap	insert	1,906,550 ops/sec
2	cb::HashMap	insert	1,315,450 ops/sec
2	cbo::HashMap	insert	2,269,950 ops/sec
2	cmr::HashMap	insert	1,913,700 ops/sec
2	std::HashMap	insert	1,877,850 ops/sec
2	cb::HashMap	insert	1,315,500 ops/sec
2	cbo::HashMap	insert	2,302,350 ops/sec
2	cmr::HashMap	insert	1,892,066 ops/sec
2	std::HashMap	insert	1,858,550 ops/sec
2	cb::HashMap	insert	1,312,800 ops/sec
2	cbo::HashMap	insert	2,268,100 ops/sec
2	cmr::HashMap	insert	1,863,400 ops/sec
2	std::HashMap	insert	1,842,600 ops/sec
2	cb::HashMap	insert	1,319,750 ops/sec
2	cbo::HashMap	insert	2,272,800 ops/sec
2	cmr::HashMap	insert	1,867,500 ops/sec
2	std::HashMap	insert	1,906,550 ops/sec
2	cb::HashMap	insert	1,310,750 ops/sec
2	cbo::HashMap	insert	2,250,750 ops/sec
2	cmr::HashMap	insert	1,839,533 ops/sec
2	std::HashMap	insert	1,843,600 ops/sec
2	cb::HashMap	insert	1,305,200 ops/sec
2	cbo::HashMap	insert	2,254,300 ops/sec
2	cmr::HashMap	insert	1,880,400 ops/sec
2	std::HashMap	insert	1,862,800 ops/sec
2	cb::HashMap	insert	1,317,100 ops/sec
2	cbo::HashMap	insert	2,267,350 ops/sec
2	cmr::HashMap	insert	1,917,500 ops/sec
2	std::HashMap	insert	1,854,150 ops/sec
2	cb::HashMap	insert	1,319,850 ops/sec
2	cbo::HashMap	insert	2,259,150 ops/sec
3	cmr::HashMap	insert	2,797,316 ops/sec
3	std::HashMap	insert	2,168,200 ops/sec
3	cb::HashMap	insert	1,783,550 ops/sec
3	cbo::HashMap	insert	3,204,200 ops/sec
3	cmr::HashMap	insert	2,545,000 ops/sec
3	std::HashMap	insert	2,119,500 ops/sec
3	cb::HashMap	insert	1,773,800 ops/sec
3	cbo::HashMap	insert	3,168,450 ops/sec
3	cmr::HashMap	insert	2,790,516 ops/sec
3	std::HashMap	insert	2,083,750 ops/sec
3	cb::HashMap	insert	1,790,250 ops/sec
3	cbo::HashMap	insert	3,240,150 ops/sec
3	cmr::HashMap	insert	2,761,600 ops/sec
3	std::HashMap	insert	2,119,350 ops/sec
3	cb::HashMap	insert	1,783,000 ops/sec
3	cbo::HashMap	insert	3,208,250 ops/sec
3	cmr::HashMap	insert	2,784,950 ops/sec
3	std::HashMap	insert	2,132,550 ops/sec
3	cb::HashMap	insert	1,791,150 ops/sec
3	cbo::HashMap	insert	3,182,800 ops/sec
3	cmr::HashMap	insert	2,823,883 ops/sec
3	std::HashMap	insert	2,105,100 ops/sec
3	cb::HashMap	insert	1,777,650 ops/sec
3	cbo::HashMap	insert	3,179,250 ops/sec
3	cmr::HashMap	insert	2,750,183 ops/sec
3	std::HashMap	insert	2,144,800 ops/sec
3	cb::HashMap	insert	1,780,900 ops/sec
3	cbo::HashMap	insert	3,225,000 ops/sec
3	cmr::HashMap	insert	2,709,200 ops/sec
3	std::HashMap	insert	2,181,950 ops/sec
3	cb::HashMap	insert	1,792,550 ops/sec
3	cbo::HashMap	insert	3,200,150 ops/sec
3	cmr::HashMap	insert	2,739,766 ops/sec
3	std::HashMap	insert	2,096,200 ops/sec
3	cb::HashMap	insert	1,769,350 ops/sec
3	cbo::HashMap	insert	3,153,500 ops/sec
3	cmr::HashMap	insert	2,631,250 ops/sec
3	std::HashMap	insert	2,148,450 ops/sec
3	cb::HashMap	insert	1,776,200 ops/sec
3	cbo::HashMap	insert	3,178,300 ops/sec
4	cmr::HashMap	insert	3,595,583 ops/sec
4	std::HashMap	insert	1,906,600 ops/sec
4	cb::HashMap	insert	2,205,050 ops/sec
4	cbo::HashMap	insert	4,021,200 ops/sec
4	cmr::HashMap	insert	3,542,766 ops/sec
4	std::HashMap	insert	1,906,600 ops/sec
4	cb::HashMap	insert	2,196,200 ops/sec
4	cbo::HashMap	insert	4,189,300 ops/sec
4	cmr::HashMap	insert	3,639,116 ops/sec
4	std::HashMap	insert	1,889,950 ops/sec
4	cb::HashMap	insert	2,204,500 ops/sec
4	cbo::HashMap	insert	3,884,250 ops/sec
4	cmr::HashMap	insert	3,574,733 ops/sec
4	std::HashMap	insert	1,906,600 ops/sec
4	cb::HashMap	insert	2,221,750 ops/sec
4	cbo::HashMap	insert	4,120,000 ops/sec
4	cmr::HashMap	insert	3,428,183 ops/sec
4	std::HashMap	insert	1,881,350 ops/sec
4	cb::HashMap	insert	2,158,800 ops/sec
4	cbo::HashMap	insert	4,089,250 ops/sec
4	cmr::HashMap	insert	3,509,566 ops/sec
4	std::HashMap	insert	1,848,950 ops/sec
4	cb::HashMap	insert	2,173,400 ops/sec
4	cbo::HashMap	insert	4,069,100 ops/sec
4	cmr::HashMap	insert	3,573,950 ops/sec
4	std::HashMap	insert	1,692,250 ops/sec
4	cb::HashMap	insert	2,012,150 ops/sec
4	cbo::HashMap	insert	3,569,550 ops/sec
4	cmr::HashMap	insert	3,195,433 ops/sec
4	std::HashMap	insert	1,844,850 ops/sec
4	cb::HashMap	insert	2,185,200 ops/sec
4	cbo::HashMap	insert	4,058,950 ops/sec
4	cmr::HashMap	insert	3,328,850 ops/sec
4	std::HashMap	insert	1,780,250 ops/sec
4	cb::HashMap	insert	2,007,550 ops/sec
4	cbo::HashMap	insert	3,613,600 ops/sec
4	cmr::HashMap	insert	2,907,566 ops/sec
4	std::HashMap	insert	1,760,400 ops/sec
4	cb::HashMap	insert	2,037,050 ops/sec
4	cbo::HashMap	insert	3,995,950 ops/sec
5	cmr::HashMap	insert	3,857,166 ops/sec
5	std::HashMap	insert	1,877,100 ops/sec
5	cb::HashMap	insert	2,450,050 ops/sec
5	cbo::HashMap	insert	4,745,500 ops/sec
5	cmr::HashMap	insert	3,833,166 ops/sec
5	std::HashMap	insert	1,857,800 ops/sec
5	cb::HashMap	insert	2,436,400 ops/sec
5	cbo::HashMap	insert	4,695,050 ops/sec
5	cmr::HashMap	insert	3,855,016 ops/sec
5	std::HashMap	insert	1,863,350 ops/sec
5	cb::HashMap	insert	2,454,850 ops/sec
5	cbo::HashMap	insert	4,767,500 ops/sec
5	cmr::HashMap	insert	3,870,833 ops/sec
5	std::HashMap	insert	1,898,900 ops/sec
5	cb::HashMap	insert	2,449,550 ops/sec
5	cbo::HashMap	insert	4,685,250 ops/sec
5	cmr::HashMap	insert	3,998,550 ops/sec
5	std::HashMap	insert	1,854,500 ops/sec
5	cb::HashMap	insert	2,457,700 ops/sec
5	cbo::HashMap	insert	4,695,700 ops/sec
5	cmr::HashMap	insert	3,826,133 ops/sec
5	std::HashMap	insert	1,846,300 ops/sec
5	cb::HashMap	insert	2,452,650 ops/sec
5	cbo::HashMap	insert	4,697,650 ops/sec
5	cmr::HashMap	insert	4,026,733 ops/sec
5	std::HashMap	insert	1,863,850 ops/sec
5	cb::HashMap	insert	2,473,200 ops/sec
5	cbo::HashMap	insert	4,739,850 ops/sec
5	cmr::HashMap	insert	4,047,116 ops/sec
5	std::HashMap	insert	1,864,750 ops/sec
5	cb::HashMap	insert	2,465,850 ops/sec
5	cbo::HashMap	insert	4,731,250 ops/sec
5	cmr::HashMap	insert	3,817,666 ops/sec
5	std::HashMap	insert	1,734,400 ops/sec
5	cb::HashMap	insert	2,414,550 ops/sec
5	cbo::HashMap	insert	4,666,550 ops/sec
5	cmr::HashMap	insert	3,850,083 ops/sec
5	std::HashMap	insert	1,851,600 ops/sec
5	cb::HashMap	insert	2,425,650 ops/sec
5	cbo::HashMap	insert	4,712,800 ops/sec
6	cmr::HashMap	insert	4,043,550 ops/sec
6	std::HashMap	insert	1,751,350 ops/sec
6	cb::HashMap	insert	2,599,050 ops/sec
6	cbo::HashMap	insert	5,142,450 ops/sec
6	cmr::HashMap	insert	3,831,600 ops/sec
6	std::HashMap	insert	1,757,850 ops/sec
6	cb::HashMap	insert	2,684,500 ops/sec
6	cbo::HashMap	insert	5,375,900 ops/sec
6	cmr::HashMap	insert	3,917,916 ops/sec
6	std::HashMap	insert	1,805,550 ops/sec
6	cb::HashMap	insert	2,702,550 ops/sec
6	cbo::HashMap	insert	5,372,600 ops/sec
6	cmr::HashMap	insert	3,866,900 ops/sec
6	std::HashMap	insert	1,815,350 ops/sec
6	cb::HashMap	insert	2,716,950 ops/sec
6	cbo::HashMap	insert	5,416,600 ops/sec
6	cmr::HashMap	insert	3,945,916 ops/sec
6	std::HashMap	insert	1,796,900 ops/sec
6	cb::HashMap	insert	2,657,800 ops/sec
6	cbo::HashMap	insert	5,334,150 ops/sec
6	cmr::HashMap	insert	4,096,100 ops/sec
6	std::HashMap	insert	1,811,650 ops/sec
6	cb::HashMap	insert	2,698,300 ops/sec
6	cbo::HashMap	insert	5,469,750 ops/sec
6	cmr::HashMap	insert	4,016,100 ops/sec
6	std::HashMap	insert	1,804,200 ops/sec
6	cb::HashMap	insert	2,746,100 ops/sec
6	cbo::HashMap	insert	5,517,300 ops/sec
6	cmr::HashMap	insert	3,952,466 ops/sec
6	std::HashMap	insert	1,767,300 ops/sec
6	cb::HashMap	insert	2,742,500 ops/sec
6	cbo::HashMap	insert	5,415,500 ops/sec
6	cmr::HashMap	insert	4,129,116 ops/sec
6	std::HashMap	insert	1,806,100 ops/sec
6	cb::HashMap	insert	2,755,700 ops/sec
6	cbo::HashMap	insert	5,446,900 ops/sec
6	cmr::HashMap	insert	4,134,333 ops/sec
6	std::HashMap	insert	1,833,150 ops/sec
6	cb::HashMap	insert	2,725,600 ops/sec
6	cbo::HashMap	insert	5,406,450 ops/sec
7	cmr::HashMap	insert	4,577,783 ops/sec
7	std::HashMap	insert	1,721,600 ops/sec
7	cb::HashMap	insert	2,853,500 ops/sec
7	cbo::HashMap	insert	6,176,050 ops/sec
7	cmr::HashMap	insert	4,775,900 ops/sec
7	std::HashMap	insert	1,697,100 ops/sec
7	cb::HashMap	insert	2,932,800 ops/sec
7	cbo::HashMap	insert	6,194,100 ops/sec
7	cmr::HashMap	insert	4,560,066 ops/sec
7	std::HashMap	insert	1,728,500 ops/sec
7	cb::HashMap	insert	2,948,200 ops/sec
7	cbo::HashMap	insert	6,254,500 ops/sec
7	cmr::HashMap	insert	4,141,733 ops/sec
7	std::HashMap	insert	1,743,450 ops/sec
7	cb::HashMap	insert	2,958,750 ops/sec
7	cbo::HashMap	insert	6,267,850 ops/sec
7	cmr::HashMap	insert	4,661,933 ops/sec
7	std::HashMap	insert	1,738,800 ops/sec
7	cb::HashMap	insert	2,926,650 ops/sec
7	cbo::HashMap	insert	6,181,250 ops/sec
7	cmr::HashMap	insert	4,647,233 ops/sec
7	std::HashMap	insert	1,727,800 ops/sec
7	cb::HashMap	insert	2,935,050 ops/sec
7	cbo::HashMap	insert	6,148,400 ops/sec
7	cmr::HashMap	insert	4,565,866 ops/sec
7	std::HashMap	insert	1,750,900 ops/sec
7	cb::HashMap	insert	2,862,650 ops/sec
7	cbo::HashMap	insert	5,993,750 ops/sec
7	cmr::HashMap	insert	4,387,800 ops/sec
7	std::HashMap	insert	1,729,300 ops/sec
7	cb::HashMap	insert	2,949,150 ops/sec
7	cbo::HashMap	insert	6,181,250 ops/sec
7	cmr::HashMap	insert	4,597,583 ops/sec
7	std::HashMap	insert	1,741,650 ops/sec
7	cb::HashMap	insert	2,965,900 ops/sec
7	cbo::HashMap	insert	6,236,650 ops/sec
7	cmr::HashMap	insert	4,290,866 ops/sec
7	std::HashMap	insert	1,753,600 ops/sec
7	cb::HashMap	insert	2,956,450 ops/sec
7	cbo::HashMap	insert	6,230,400 ops/sec
8	cmr::HashMap	insert	4,518,650 ops/sec
8	std::HashMap	insert	1,701,500 ops/sec
8	cb::HashMap	insert	3,063,150 ops/sec
8	cbo::HashMap	insert	6,691,400 ops/sec
8	cmr::HashMap	insert	4,660,816 ops/sec
8	std::HashMap	insert	1,704,350 ops/sec
8	cb::HashMap	insert	3,082,250 ops/sec
8	cbo::HashMap	insert	6,689,600 ops/sec
8	cmr::HashMap	insert	4,443,800 ops/sec
8	std::HashMap	insert	1,705,200 ops/sec
8	cb::HashMap	insert	3,139,550 ops/sec
8	cbo::HashMap	insert	6,715,750 ops/sec
8	cmr::HashMap	insert	4,546,800 ops/sec
8	std::HashMap	insert	1,707,450 ops/sec
8	cb::HashMap	insert	3,094,250 ops/sec
8	cbo::HashMap	insert	6,683,350 ops/sec
8	cmr::HashMap	insert	4,484,533 ops/sec
8	std::HashMap	insert	1,700,100 ops/sec
8	cb::HashMap	insert	3,117,900 ops/sec
8	cbo::HashMap	insert	6,706,450 ops/sec
8	cmr::HashMap	insert	5,148,383 ops/sec
8	std::HashMap	insert	1,703,450 ops/sec
8	cb::HashMap	insert	3,133,450 ops/sec
8	cbo::HashMap	insert	6,679,650 ops/sec
8	cmr::HashMap	insert	5,378,066 ops/sec
8	std::HashMap	insert	1,692,300 ops/sec
8	cb::HashMap	insert	3,135,550 ops/sec
8	cbo::HashMap	insert	6,689,050 ops/sec
8	cmr::HashMap	insert	4,672,366 ops/sec
8	std::HashMap	insert	1,704,000 ops/sec
8	cb::HashMap	insert	3,096,300 ops/sec
8	cbo::HashMap	insert	6,540,950 ops/sec
8	cmr::HashMap	insert	4,724,366 ops/sec
8	std::HashMap	insert	1,705,550 ops/sec
8	cb::HashMap	insert	3,137,700 ops/sec
8	cbo::HashMap	insert	6,714,700 ops/sec
8	cmr::HashMap	insert	5,158,483 ops/sec
8	std::HashMap	insert	1,701,950 ops/sec
8	cb::HashMap	insert	3,084,650 ops/sec
8	cbo::HashMap	insert	6,320,900 ops/sec

1	notrack::HashMap	insert	1,383,183 ops/sec
2	notrack::HashMap	insert	2,909,800 ops/sec
3	notrack::HashMap	insert	4,283,950 ops/sec
4	notrack::HashMap	insert	5,781,733 ops/sec
5	notrack::HashMap	insert	6,869,800 ops/sec
6	notrack::HashMap	insert	7,702,633 ops/sec
7	notrack::HashMap	insert	8,402,983 ops/sec
8	notrack::HashMap	insert	9,253,650 ops/sec
1	notrack::HashMap	insert	1,032,066 ops/sec
2	notrack::HashMap	insert	1,690,766 ops/sec
3	notrack::HashMap	insert	2,665,750 ops/sec
4	notrack::HashMap	insert	2,751,400 ops/sec
5	notrack::HashMap	insert	3,053,866 ops/sec
6	notrack::HashMap	insert	2,756,000 ops/sec
7	notrack::HashMap	insert	3,855,316 ops/sec
8	notrack::HashMap	insert	4,433,000 ops/sec

1	hb::HashMap	insert	968,183 ops/sec
1	hb::HashMap	insert	981,916 ops/sec
1	hb::HashMap	insert	977,383 ops/sec
1	hb::HashMap	insert	975,566 ops/sec
1	hb::HashMap	insert	977,400 ops/sec
2	hb::HashMap	insert	1,712,933 ops/sec
2	hb::HashMap	insert	1,821,133 ops/sec
2	hb::HashMap	insert	1,798,300 ops/sec
2	hb::HashMap	insert	1,731,766 ops/sec
2	hb::HashMap	insert	1,852,300 ops/sec
3	hb::HashMap	insert	2,563,133 ops/sec
3	hb::HashMap	insert	2,516,100 ops/sec
3	hb::HashMap	insert	2,504,800 ops/sec
3	hb::HashMap	insert	2,421,150 ops/sec
3	hb::HashMap	insert	2,537,750 ops/sec
4	hb::HashMap	insert	3,263,516 ops/sec
4	hb::HashMap	insert	3,295,666 ops/sec
4	hb::HashMap	insert	3,316,600 ops/sec
4	hb::HashMap	insert	3,304,400 ops/sec
4	hb::HashMap	insert	3,430,200 ops/sec
5	hb::HashMap	insert	3,647,416 ops/sec
5	hb::HashMap	insert	3,649,266 ops/sec
5	hb::HashMap	insert	3,703,250 ops/sec
5	hb::HashMap	insert	3,608,066 ops/sec
5	hb::HashMap	insert	3,545,183 ops/sec
6	hb::HashMap	insert	3,140,400 ops/sec
6	hb::HashMap	insert	3,685,900 ops/sec
6	hb::HashMap	insert	3,495,833 ops/sec
6	hb::HashMap	insert	3,513,566 ops/sec
6	hb::HashMap	insert	3,465,716 ops/sec
7	hb::HashMap	insert	4,113,450 ops/sec
7	hb::HashMap	insert	4,141,850 ops/sec
7	hb::HashMap	insert	3,999,833 ops/sec
7	hb::HashMap	insert	4,055,766 ops/sec
7	hb::HashMap	insert	4,097,300 ops/sec
8	hb::HashMap	insert	4,639,133 ops/sec
8	hb::HashMap	insert	4,588,133 ops/sec
8	hb::HashMap	insert	4,749,033 ops/sec
8	hb::HashMap	insert	4,352,166 ops/sec
8	hb::HashMap	insert	4,341,266 ops/sec
1	cmr::HashMap	insert	1,054,433 ops/sec
1	std::HashMap	insert	3,813,050 ops/sec
1	cb::HashMap	insert	827,050 ops/sec
1	cbo::HashMap	insert	1,289,150 ops/sec
1	cmr::HashMap	insert	1,060,316 ops/sec
1	std::HashMap	insert	3,813,050 ops/sec
1	cb::HashMap	insert	826,650 ops/sec
1	cbo::HashMap	insert	1,282,550 ops/sec
1	cmr::HashMap	insert	1,056,350 ops/sec
1	std::HashMap	insert	3,813,050 ops/sec
1	cb::HashMap	insert	828,250 ops/sec
1	cbo::HashMap	insert	1,301,650 ops/sec
1	cmr::HashMap	insert	1,069,650 ops/sec
1	std::HashMap	insert	3,813,050 ops/sec
1	cb::HashMap	insert	825,400 ops/sec
1	cbo::HashMap	insert	1,301,600 ops/sec
1	cmr::HashMap	insert	1,057,600 ops/sec
1	std::HashMap	insert	3,813,050 ops/sec
1	cb::HashMap	insert	826,950 ops/sec
1	cbo::HashMap	insert	1,302,250 ops/sec
1	cmr::HashMap	insert	1,062,000 ops/sec
1	std::HashMap	insert	3,813,050 ops/sec
1	cb::HashMap	insert	828,700 ops/sec
1	cbo::HashMap	insert	1,294,500 ops/sec
1	cmr::HashMap	insert	1,055,433 ops/sec
1	std::HashMap	insert	3,813,050 ops/sec
1	cb::HashMap	insert	831,600 ops/sec
1	cbo::HashMap	insert	1,294,300 ops/sec
1	cmr::HashMap	insert	1,064,666 ops/sec
1	std::HashMap	insert	3,813,050 ops/sec
1	cb::HashMap	insert	825,950 ops/sec
1	cbo::HashMap	insert	1,287,550 ops/sec
1	cmr::HashMap	insert	1,066,533 ops/sec
1	std::HashMap	insert	3,813,050 ops/sec
1	cb::HashMap	insert	822,150 ops/sec
1	cbo::HashMap	insert	1,287,450 ops/sec
1	cmr::HashMap	insert	1,065,183 ops/sec
1	std::HashMap	insert	3,813,050 ops/sec
1	cb::HashMap	insert	826,850 ops/sec
1	cbo::HashMap	insert	1,294,950 ops/sec
2	cmr::HashMap	insert	2,071,416 ops/sec
2	std::HashMap	insert	1,906,550 ops/sec
2	cb::HashMap	insert	1,380,400 ops/sec
2	cbo::HashMap	insert	2,282,150 ops/sec
2	cmr::HashMap	insert	2,023,000 ops/sec
2	std::HashMap	insert	1,904,600 ops/sec
2	cb::HashMap	insert	1,382,750 ops/sec
2	cbo::HashMap	insert	2,285,250 ops/sec
2	cmr::HashMap	insert	1,997,200 ops/sec
2	std::HashMap	insert	1,906,550 ops/sec
2	cb::HashMap	insert	1,375,300 ops/sec
2	cbo::HashMap	insert	2,285,300 ops/sec
2	cmr::HashMap	insert	2,061,700 ops/sec
2	std::HashMap	insert	1,903,200 ops/sec
2	cb::HashMap	insert	1,370,000 ops/sec
2	cbo::HashMap	insert	2,286,500 ops/sec
2	cmr::HashMap	insert	2,040,683 ops/sec
2	std::HashMap	insert	1,904,200 ops/sec
2	cb::HashMap	insert	1,386,350 ops/sec
2	cbo::HashMap	insert	2,280,200 ops/sec
2	cmr::HashMap	insert	2,044,566 ops/sec
2	std::HashMap	insert	1,906,550 ops/sec
2	cb::HashMap	insert	1,389,250 ops/sec
2	cbo::HashMap	insert	2,280,750 ops/sec
2	cmr::HashMap	insert	2,061,866 ops/sec
2	std::HashMap	insert	1,848,500 ops/sec
2	cb::HashMap	insert	1,376,450 ops/sec
2	cbo::HashMap	insert	2,283,700 ops/sec
2	cmr::HashMap	insert	2,029,433 ops/sec
2	std::HashMap	insert	1,904,850 ops/sec
2	cb::HashMap	insert	1,386,550 ops/sec
2	cbo::HashMap	insert	2,280,100 ops/sec
2	cmr::HashMap	insert	2,042,733 ops/sec
2	std::HashMap	insert	1,906,550 ops/sec
2	cb::HashMap	insert	1,388,050 ops/sec
2	cbo::HashMap	insert	2,279,900 ops/sec
2	cmr::HashMap	insert	2,009,366 ops/sec
2	std::HashMap	insert	1,906,550 ops/sec
2	cb::HashMap	insert	1,387,150 ops/sec
2	cbo::HashMap	insert	2,273,400 ops/sec
3	cmr::HashMap	insert	3,009,450 ops/sec
3	std::HashMap	insert	2,097,750 ops/sec
3	cb::HashMap	insert	1,851,900 ops/sec
3	cbo::HashMap	insert	3,350,800 ops/sec
3	cmr::HashMap	insert	2,971,600 ops/sec
3	std::HashMap	insert	2,112,450 ops/sec
3	cb::HashMap	insert	1,860,650 ops/sec
3	cbo::HashMap	insert	3,337,050 ops/sec
3	cmr::HashMap	insert	2,949,400 ops/sec
3	std::HashMap	insert	2,161,050 ops/sec
3	cb::HashMap	insert	1,855,150 ops/sec
3	cbo::HashMap	insert	3,371,150 ops/sec
3	cmr::HashMap	insert	2,757,916 ops/sec
3	std::HashMap	insert	2,107,100 ops/sec
3	cb::HashMap	insert	1,862,500 ops/sec
3	cbo::HashMap	insert	3,414,700 ops/sec
3	cmr::HashMap	insert	2,853,750 ops/sec
3	std::HashMap	insert	2,177,050 ops/sec
3	cb::HashMap	insert	1,862,700 ops/sec
3	cbo::HashMap	insert	3,413,650 ops/sec
3	cmr::HashMap	insert	3,040,700 ops/sec
3	std::HashMap	insert	2,108,450 ops/sec
3	cb::HashMap	insert	1,856,000 ops/sec
3	cbo::HashMap	insert	3,416,800 ops/sec
3	cmr::HashMap	insert	2,976,750 ops/sec
3	std::HashMap	insert	2,138,850 ops/sec
3	cb::HashMap	insert	1,867,200 ops/sec
3	cbo::HashMap	insert	3,380,950 ops/sec
3	cmr::HashMap	insert	2,919,750 ops/sec
3	std::HashMap	insert	2,142,650 ops/sec
3	cb::HashMap	insert	1,861,650 ops/sec
3	cbo::HashMap	insert	3,360,450 ops/sec
3	cmr::HashMap	insert	3,036,650 ops/sec
3	std::HashMap	insert	2,143,250 ops/sec
3	cb::HashMap	insert	1,865,600 ops/sec
3	cbo::HashMap	insert	3,366,950 ops/sec
3	cmr::HashMap	insert	3,090,450 ops/sec
3	std::HashMap	insert	2,139,000 ops/sec
3	cb::HashMap	insert	1,857,500 ops/sec
3	cbo::HashMap	insert	3,354,650 ops/sec
4	cmr::HashMap	insert	3,896,883 ops/sec
4	std::HashMap	insert	1,936,200 ops/sec
4	cb::HashMap	insert	2,320,000 ops/sec
4	cbo::HashMap	insert	4,307,200 ops/sec
4	cmr::HashMap	insert	3,817,533 ops/sec
4	std::HashMap	insert	1,940,450 ops/sec
4	cb::HashMap	insert	2,280,550 ops/sec
4	cbo::HashMap	insert	4,428,400 ops/sec
4	cmr::HashMap	insert	3,771,200 ops/sec
4	std::HashMap	insert	1,957,200 ops/sec
4	cb::HashMap	insert	2,298,500 ops/sec
4	cbo::HashMap	insert	4,336,500 ops/sec
4	cmr::HashMap	insert	3,829,533 ops/sec
4	std::HashMap	insert	1,942,800 ops/sec
4	cb::HashMap	insert	2,294,700 ops/sec
4	cbo::HashMap	insert	4,276,350 ops/sec
4	cmr::HashMap	insert	3,840,033 ops/sec
4	std::HashMap	insert	1,906,600 ops/sec
4	cb::HashMap	insert	2,315,250 ops/sec
4	cbo::HashMap	insert	4,448,300 ops/sec
4	cmr::HashMap	insert	3,723,700 ops/sec
4	std::HashMap	insert	1,938,650 ops/sec
4	cb::HashMap	insert	2,311,800 ops/sec
4	cbo::HashMap	insert	4,326,200 ops/sec
4	cmr::HashMap	insert	3,929,033 ops/sec
4	std::HashMap	insert	1,928,250 ops/sec
4	cb::HashMap	insert	2,309,300 ops/sec
4	cbo::HashMap	insert	4,249,300 ops/sec
4	cmr::HashMap	insert	3,890,666 ops/sec
4	std::HashMap	insert	1,910,800 ops/sec
4	cb::HashMap	insert	2,320,250 ops/sec
4	cbo::HashMap	insert	4,351,550 ops/sec
4	cmr::HashMap	insert	3,840,800 ops/sec
4	std::HashMap	insert	1,906,650 ops/sec
4	cb::HashMap	insert	2,292,300 ops/sec
4	cbo::HashMap	insert	4,345,000 ops/sec
4	cmr::HashMap	insert	3,946,866 ops/sec
4	std::HashMap	insert	1,944,250 ops/sec
4	cb::HashMap	insert	2,293,950 ops/sec
4	cbo::HashMap	insert	4,301,050 ops/sec
5	cmr::HashMap	insert	4,300,516 ops/sec
5	std::HashMap	insert	1,902,450 ops/sec
5	cb::HashMap	insert	2,654,800 ops/sec
5	cbo::HashMap	insert	4,942,200 ops/sec
5	cmr::HashMap	insert	4,105,466 ops/sec
5	std::HashMap	insert	1,906,600 ops/sec
5	cb::HashMap	insert	2,646,750 ops/sec
5	cbo::HashMap	insert	4,992,250 ops/sec
5	cmr::HashMap	insert	4,188,716 ops/sec
5	std::HashMap	insert	1,906,650 ops/sec
5	cb::HashMap	insert	2,616,650 ops/sec
5	cbo::HashMap	insert	5,084,650 ops/sec
5	cmr::HashMap	insert	4,244,016 ops/sec
5	std::HashMap	insert	1,906,600 ops/sec
5	cb::HashMap	insert	2,638,300 ops/sec
5	cbo::HashMap	insert	5,082,500 ops/sec
5	cmr::HashMap	insert	4,415,750 ops/sec
5	std::HashMap	insert	1,874,100 ops/sec
5	cb::HashMap	insert	2,632,800 ops/sec
5	cbo::HashMap	insert	5,101,400 ops/sec
5	cmr::HashMap	insert	4,191,450 ops/sec
5	std::HashMap	insert	1,906,600 ops/sec
5	cb::HashMap	insert	2,650,050 ops/sec
5	cbo::HashMap	insert	5,080,150 ops/sec
5	cmr::HashMap	insert	4,336,450 ops/sec
5	std::HashMap	insert	1,906,600 ops/sec
5	cb::HashMap	insert	2,640,050 ops/sec
5	cbo::HashMap	insert	5,071,500 ops/sec
5	cmr::HashMap	insert	4,249,000 ops/sec
5	std::HashMap	insert	1,900,000 ops/sec
5	cb::HashMap	insert	2,645,450 ops/sec
5	cbo::HashMap	insert	5,072,300 ops/sec
5	cmr::HashMap	insert	4,143,116 ops/sec
5	std::HashMap	insert	1,906,650 ops/sec
5	cb::HashMap	insert	2,634,750 ops/sec
5	cbo::HashMap	insert	5,099,350 ops/sec
5	cmr::HashMap	insert	4,247,600 ops/sec
5	std::HashMap	insert	1,906,650 ops/sec
5	cb::HashMap	insert	2,646,400 ops/sec
5	cbo::HashMap	insert	5,085,050 ops/sec
6	cmr::HashMap	insert	4,047,283 ops/sec
6	std::HashMap	insert	1,840,500 ops/sec
6	cb::HashMap	insert	2,937,450 ops/sec
6	cbo::HashMap	insert	5,750,900 ops/sec
6	cmr::HashMap	insert	4,085,900 ops/sec
6	std::HashMap	insert	1,873,400 ops/sec
6	cb::HashMap	insert	2,963,050 ops/sec
6	cbo::HashMap	insert	5,692,550 ops/sec
6	cmr::HashMap	insert	4,508,316 ops/sec
6	std::HashMap	insert	1,897,200 ops/sec
6	cb::HashMap	insert	2,966,650 ops/sec
6	cbo::HashMap	insert	5,735,400 ops/sec
6	cmr::HashMap	insert	4,381,966 ops/sec
6	std::HashMap	insert	1,870,350 ops/sec
6	cb::HashMap	insert	2,863,200 ops/sec
6	cbo::HashMap	insert	5,672,300 ops/sec
6	cmr::HashMap	insert	4,028,100 ops/sec
6	std::HashMap	insert	1,870,000 ops/sec
6	cb::HashMap	insert	2,954,500 ops/sec
6	cbo::HashMap	insert	5,734,050 ops/sec
6	cmr::HashMap	insert	4,243,683 ops/sec
6	std::HashMap	insert	1,897,000 ops/sec
6	cb::HashMap	insert	2,932,000 ops/sec
6	cbo::HashMap	insert	5,745,500 ops/sec
6	cmr::HashMap	insert	4,172,200 ops/sec
6	std::HashMap	insert	1,851,150 ops/sec
6	cb::HashMap	insert	2,954,250 ops/sec
6	cbo::HashMap	insert	5,669,350 ops/sec
6	cmr::HashMap	insert	4,033,800 ops/sec
6	std::HashMap	insert	1,879,100 ops/sec
6	cb::HashMap	insert	2,950,900 ops/sec
6	cbo::HashMap	insert	5,702,400 ops/sec
6	cmr::HashMap	insert	4,457,400 ops/sec
6	std::HashMap	insert	1,879,450 ops/sec
6	cb::HashMap	insert	2,943,700 ops/sec
6	cbo::HashMap	insert	5,751,800 ops/sec
6	cmr::HashMap	insert	4,150,733 ops/sec
6	std::HashMap	insert	1,879,900 ops/sec
6	cb::HashMap	insert	2,921,750 ops/sec
6	cbo::HashMap	insert	5,659,950 ops/sec
7	cmr::HashMap	insert	4,580,383 ops/sec
7	std::HashMap	insert	1,805,250 ops/sec
7	cb::HashMap	insert	3,222,600 ops/sec
7	cbo::HashMap	insert	6,312,050 ops/sec
7	cmr::HashMap	insert	4,976,483 ops/sec
7	std::HashMap	insert	1,821,800 ops/sec
7	cb::HashMap	insert	3,234,400 ops/sec
7	cbo::HashMap	insert	6,358,950 ops/sec
7	cmr::HashMap	insert	4,667,850 ops/sec
7	std::HashMap	insert	1,831,750 ops/sec
7	cb::HashMap	insert	3,232,500 ops/sec
7	cbo::HashMap	insert	6,367,050 ops/sec
7	cmr::HashMap	insert	4,751,483 ops/sec
7	std::HashMap	insert	1,823,250 ops/sec
7	cb::HashMap	insert	3,223,000 ops/sec
7	cbo::HashMap	insert	6,294,150 ops/sec
7	cmr::HashMap	insert	4,761,950 ops/sec
7	std::HashMap	insert	1,822,850 ops/sec
7	cb::HashMap	insert	3,236,650 ops/sec
7	cbo::HashMap	insert	6,357,850 ops/sec
7	cmr::HashMap	insert	4,652,483 ops/sec
7	std::HashMap	insert	1,818,200 ops/sec
7	cb::HashMap	insert	3,219,650 ops/sec
7	cbo::HashMap	insert	6,313,150 ops/sec
7	cmr::HashMap	insert	4,715,616 ops/sec
7	std::HashMap	insert	1,813,950 ops/sec
7	cb::HashMap	insert	3,220,050 ops/sec
7	cbo::HashMap	insert	6,292,350 ops/sec
7	cmr::HashMap	insert	4,921,466 ops/sec
7	std::HashMap	insert	1,808,300 ops/sec
7	cb::HashMap	insert	3,222,800 ops/sec
7	cbo::HashMap	insert	6,320,500 ops/sec
7	cmr::HashMap	insert	4,925,600 ops/sec
7	std::HashMap	insert	1,814,850 ops/sec
7	cb::HashMap	insert	3,132,900 ops/sec
7	cbo::HashMap	insert	6,313,350 ops/sec
7	cmr::HashMap	insert	4,745,533 ops/sec
7	std::HashMap	insert	1,822,200 ops/sec
7	cb::HashMap	insert	3,216,400 ops/sec
7	cbo::HashMap	insert	6,347,800 ops/sec
8	cmr::HashMap	insert	4,618,316 ops/sec
8	std::HashMap	insert	1,777,550 ops/sec
8	cb::HashMap	insert	3,401,750 ops/sec
8	cbo::HashMap	insert	6,734,100 ops/sec
8	cmr::HashMap	insert	4,847,016 ops/sec
8	std::HashMap	insert	1,783,750 ops/sec
8	cb::HashMap	insert	3,407,150 ops/sec
8	cbo::HashMap	insert	6,910,600 ops/sec
8	cmr::HashMap	insert	5,032,633 ops/sec
8	std::HashMap	insert	1,788,450 ops/sec
8	cb::HashMap	insert	3,450,950 ops/sec
8	cbo::HashMap	insert	6,905,100 ops/sec
8	cmr::HashMap	insert	4,778,116 ops/sec
8	std::HashMap	insert	1,796,450 ops/sec
8	cb::HashMap	insert	3,424,850 ops/sec
8	cbo::HashMap	insert	6,894,000 ops/sec
8	cmr::HashMap	insert	4,940,533 ops/sec
8	std::HashMap	insert	1,788,750 ops/sec
8	cb::HashMap	insert	3,388,300 ops/sec
8	cbo::HashMap	insert	6,868,100 ops/sec
8	cmr::HashMap	insert	5,240,666 ops/sec
8	std::HashMap	insert	1,764,850 ops/sec
8	cb::HashMap	insert	3,245,650 ops/sec
8	cbo::HashMap	insert	6,889,550 ops/sec
8	cmr::HashMap	insert	5,028,400 ops/sec
8	std::HashMap	insert	1,784,600 ops/sec
8	cb::HashMap	insert	3,442,100 ops/sec
8	cbo::HashMap	insert	6,906,650 ops/sec
8	cmr::HashMap	insert	4,873,516 ops/sec
8	std::HashMap	insert	1,780,400 ops/sec
8	cb::HashMap	insert	3,451,000 ops/sec
8	cbo::HashMap	insert	6,934,150 ops/sec
8	cmr::HashMap	insert	5,376,283 ops/sec
8	std::HashMap	insert	1,764,300 ops/sec
8	cb::HashMap	insert	3,440,150 ops/sec
8	cbo::HashMap	insert	6,920,250 ops/sec
8	cmr::HashMap	insert	4,932,516 ops/sec
8	std::HashMap	insert	1,796,950 ops/sec
8	cb::HashMap	insert	3,394,200 ops/sec
8	cbo::HashMap	insert	6,684,400 ops/sec

A experimental-data/linedata.py => experimental-data/linedata.py +45 -0
@@ 0,0 1,45 @@
#!/usr/bin/python

# This program transforms the output of the benchmark suite
#       1      cmr::HashMap    80-10-10        15,130,383 ops/sec
#       1      std::HashMap    80-10-10        1,451,166 ops/sec
#       2      cmr::HashMap    80-10-10        15,130,383 ops/sec
#       2      std::HashMap    80-10-10        1,451,166 ops/sec
# to column wise order where one column is one kind (cmr, std, cb, or cbo),
# and each row is one data point.
#       # t cmr std cb cbo
#       1 15130383 1451166 13969566 15289533
#       ....
#
# Data is read from `stdin`, and output is written to stdout.

import sys

avg = lambda l: sum([float(i) for i in l]) / len(l)

values = {}

for line in sys.stdin.readlines():
    stripped = line.strip()
    if stripped == '' or stripped[0] == '#':
        continue
    split = line.split()
    threads = split[0]
    kind = split[1].split('::')[0]
    ops = split[3].replace(',', '')
    key = (kind, threads)
    if not key in values:
        values[key] = []
    values[key].append(ops)

kinds, threads = zip(*values.keys())
kinds = sorted(set(kinds))
threads = sorted(set(threads))

if len(threads) == 1:
    sys.exit(1)

print('t\t' + '\t'.join(kinds))

for t in threads:
    print('\t'.join([t] + [str(avg(values[(k, t)])) for k in kinds]))

A experimental-data/lineplot.sh => experimental-data/lineplot.sh +24 -0
@@ 0,0 1,24 @@
#!/bin/bash

IN_FILE="$1"
OUT_FILE="$2"
TITLE="$3"

gnuplot <<< "\
set terminal pdf size 13cm,8cm
set termoption font \"Linux Libertine,20\"
set output '$OUT_FILE'

set style fill solid 0.25 border -1
set pointsize 0.5

set key left top autotitle columnhead
set title '$TITLE'

stats '$IN_FILE' nooutput
n = STATS_columns

header = system('head -n1 $IN_FILE')

plot for [i=2:n] '$IN_FILE' using 1:i with lines
"

A experimental-data/run.sh => experimental-data/run.sh +49 -0
@@ 0,0 1,49 @@
#!/bin/bash

BENCH=$1

function contains {
	# `HashMap::contains` benchmark
	for i in {1..8..1}; do
		for iter in {1..10..1}; do 
			cargo run --release -p        benchmarks -- -t$i contains >> hmcontains-t1-8.raw
			cargo run --release -p extern-benchmarks -- -t$i contains >> hmcontains-t1-8.raw
		done
	done
}

function insert {
	# `HashMap::insert` benchmark
	for i in {1..8..1}; do
		for iter in {1..10..1}; do 
			cargo run --release -p        benchmarks -- -t$i insert >> hminsert-t1-8.raw
			cargo run --release -p extern-benchmarks -- -t$i insert >> hminsert-t1-8.raw
		done
	done
}

function real {
	# `HashMap::80_10_10` benchmark
	for i in {1..8..1}; do
		for iter in {1..10..1}; do 
			cargo run --release -p        benchmarks -- -t$i 80 >> hm80-t1-8.raw
			cargo run --release -p extern-benchmarks -- -t$i 80 >> hm80-t1-8.raw
		done
	done
}

case $BENCH in
	"contains") contains ;;
	"insert") insert ;;
	"real") real ;;
	"all") 
		contains
		insert
		real
		;;
	*)
		echo "Benchmark not found: \"$BENCH\""
		exit 1
		;;
esac


M extern-benchmarks/src/main.rs => extern-benchmarks/src/main.rs +27 -16
@@ 9,7 9,7 @@ extern crate rand;
extern crate trench;

use std::collections::HashMap as StdHashMap;
use std::sync::Mutex;
use std::sync::{Mutex, RwLock};
use std::time::Duration;

use crossbeam_epoch as epoch;


@@ 120,13 120,13 @@ fn gen_n_perm(n: usize) -> RandomSource<u64> {

/// Global state for the standard hashmap wrapped in a Mutex.
struct StdHmState {
    hashmap: Mutex<StdHashMap<u64, u64>>,
    hashmap: RwLock<StdHashMap<u64, u64>>,
}

impl Default for StdHmState {
    fn default() -> Self {
        StdHmState {
            hashmap: Mutex::new(StdHashMap::new()),
            hashmap: RwLock::new(StdHashMap::new()),
        }
    }
}


@@ 215,7 215,7 @@ impl HmOp<u64> {

fn std_hashmap_insert(num_threads: usize) {
    fn func(state: &StdHmState, local: &mut RandomSource<u64>) {
        state.hashmap.lock().unwrap().insert(local.next(), 0);
        state.hashmap.write().unwrap().insert(local.next(), 0);
    }

    let b = trench::TimedBench::<StdHmState, RandomSource<u64>>::with_threads(num_threads);


@@ 231,14 231,18 @@ fn std_hashmap_insert(num_threads: usize) {

fn std_hashmap_contains(num_threads: usize) {
    fn func(state: &StdHmState, local: &mut RandomSource<u64>) {
        let ret = state.hashmap.lock().unwrap().contains_key(&local.next());
        let n = local.next();
        let ret = state.hashmap.read().unwrap().contains_key(&n);
        if ret {
            assert!((n & 1) == 1);
        }
        trench::black_box(ret);
    }

    let b = trench::TimedBench::<StdHmState, RandomSource<u64>>::with_threads(num_threads);
    b.with_global_state(move |g| {
        for i in 0..(1_000_000 / num_threads as u64) {
            g.hashmap.lock().unwrap().insert(i, i);
            g.hashmap.write().unwrap().insert(i, i);
        }
    });
    b.with_local_state(|l| {


@@ 253,7 257,7 @@ fn std_hashmap_contains(num_threads: usize) {

fn std_hashmap_remove(num_threads: usize) {
    fn func(state: &StdHmState, local: &mut RandomSource<u64>) {
        let ret = state.hashmap.lock().unwrap().remove(&local.next());
        let ret = state.hashmap.write().unwrap().remove(&local.next());
        trench::black_box(ret);
    }



@@ 265,7 269,7 @@ fn std_hashmap_remove(num_threads: usize) {
        let mut rng = rand::thread_rng();
        for _ in 0..(10_000_000 / num_threads as u64) {
            let n = rng.gen::<u64>() % 40_000_000;
            g.hashmap.lock().unwrap().insert(n, n);
            g.hashmap.write().unwrap().insert(n, n);
        }
    });
    b.with_local_state(|l| {


@@ 280,23 284,22 @@ fn std_hashmap_remove(num_threads: usize) {

fn std_hashmap_80_10_10(num_threads: usize) {
    fn func(state: &StdHmState, local: &mut RandomSource<HmOp<u64>>) {
        let mut hm = state.hashmap.lock().unwrap();
        match local.next() {
            HmOp::Insert(n) => {
                hm.insert(n, n);
                state.hashmap.write().unwrap().insert(n, n);
            }
            HmOp::Query(n) => {
                trench::black_box(hm.contains_key(&n));
                trench::black_box(state.hashmap.read().unwrap().contains_key(&n));
            }
            HmOp::Delete(n) => {
                trench::black_box(hm.remove(&n));
                trench::black_box(state.hashmap.write().unwrap().remove(&n));
            }
        }
    }
    let b = trench::TimedBench::<StdHmState, RandomSource<HmOp<u64>>>::with_threads(num_threads);
    b.with_global_state(move |g| {
        for i in 0..(1_000_000 / num_threads as u64) {
            g.hashmap.lock().unwrap().insert(i, i);
            g.hashmap.write().unwrap().insert(i, i);
        }
    });
    b.with_local_state(|l| {


@@ 409,7 412,11 @@ fn cb_hashmap_insert(num_threads: usize) {
fn cb_hashmap_contains(num_threads: usize) {
    fn func(state: &CrossbeamSkiplistState, local: &mut RandomSource<u64>) {
        let g = &epoch::pin();
        let ret = state.skiplist.get(&local.next(), g);
        let n = local.next();
        let ret = state.skiplist.get(&n, g).is_some();
        if ret {
            assert!((n & 1) == 1);
        }
        trench::black_box(ret);
    }



@@ 596,7 603,11 @@ fn cbo_hashmap_insert(num_threads: usize) {
fn cbo_hashmap_contains(num_threads: usize) {
    fn func(state: &CrossbeamSkiporderState, local: &mut RandomSource<u64>) {
        let g = &epoch::pin();
        let ret = state.hashmap.contains(&local.next(), g);
        let n = local.next();
        let ret = state.hashmap.contains(&n, g);
        if ret {
            assert!((n & 1) == 1);
        }
        trench::black_box(ret);
    }



@@ 606,7 617,7 @@ fn cbo_hashmap_contains(num_threads: usize) {
        let g = &epoch::pin();
        let mut rng = rand::thread_rng();
        for i in 0..(1_000_000 / num_threads as u64) {
            s.hashmap.insert(rng.gen(), i, g);
            s.hashmap.insert(rng.gen::<u64>() | 1, i, g);
        }
    });
    b.with_local_state(|l| {

D report/report.pdf => report/report.pdf +0 -0
M src/alloc.rs => src/alloc.rs +1 -1
@@ 20,7 20,7 @@ use std::sync::Arc as StdArc;
#[cfg(feature = "sanitize")]
use std::sync::Mutex;
#[cfg(feature = "sanitize")]
use std::collections::HashSet;
use hashbrown::HashSet;

use alloc_system::System;
use jemallocator::Jemalloc;

M src/lib.rs => src/lib.rs +4 -1
@@ 15,6 15,7 @@

extern crate alloc_system;
extern crate jemallocator;
extern crate hashbrown;

#[cfg(not(feature = "system-allocator"))]
#[global_allocator]


@@ 47,6 48,7 @@ use std::sync::RwLock;

use byteorder::NativeEndian;
use byteorder::{ReadBytesExt, WriteBytesExt};
use hashbrown::{HashMap as HBMap, HashSet as HBSet};
use parking_lot::Once;
use tid::Timer;



@@ 173,7 175,7 @@ lazy_static! {
        RwLock::new(Vec::with_capacity(32));
    /// A global map of allocated memory that is not yet freed. This may or may not be reachable.
    /// The map is a map from address to vtable pointer address for `Trace`.
    static ref ALLOCATED_ADDRS: StdMutex<HashMap<usize, usize>> = StdMutex::new(HashMap::new());
    static ref ALLOCATED_ADDRS: StdMutex<HBMap<usize, usize>> = StdMutex::new(HBMap::new());
    /// Flag for the threads to wait in the signal handler. We need this so that we know how many
    /// thread were signaled before they do anything in the handler.
    static ref SIGNAL_HANDLER_WAIT: AtomicBool = AtomicBool::new(true);


@@ 768,6 770,7 @@ fn background_thread(recv: Receiver<BackgroundThreadInfo>) {
        while ptr_count == MARKER {
            let bytes = map.get(0..8).unwrap();
            ptr_count = Cursor::new(bytes).read_u64::<NativeEndian>().unwrap();
            ::std::thread::yield_now();
        }
        let mut cursor: Cursor<&mut [u8]> = Cursor::new(&mut map);
        cursor.set_position(8);