Array vs Set vs Object additions

Benchmark created on


Setup

var set = new Set();
var arr = [];

function addToSet(cb) {
	set.add(cb);
}

function rmFromSet(cb) {
	set.delete(cb);
}

function addToArr(cb) {
	arr.push(cb);
}

function rmFromArr(cb) {
	if (arr[arr.length - 1] === cb) {
		arr.pop();
	} else {
		arr.splice(arr.lastIndexOf(cb), 1);
	}
}

var cb1 = () => Math.random();
var cb2 = () => Math.random();

Test runner

Ready to run.

Testing in
TestOps/sec
Set (2)
addToSet(cb1);
addToSet(cb2);
rmFromSet(cb2);
rmFromSet(cb1);
ready
Array (2)
addToArr(cb1);
addToArr(cb2);
rmFromArr(cb2);
rmFromArr(cb1);
ready
Set (1)
addToSet(cb1);
rmFromSet(cb1);
ready
Array (1)
addToArr(cb1);
rmFromArr(cb1);
ready
Array (2 / mismatch)
addToArr(cb1);
addToArr(cb2);
rmFromArr(cb1);
rmFromArr(cb2);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.