cljs-persistent-hash-map-vs-js-object-small

JavaScript performance comparison

Test case created by Michał Marczyk

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    m = null;
    k1 = "foo1";
    k2 = "foo2";
    k3 = "foo3";
    k4 = "foo4";
    k5 = "foo5";
    k6 = "foo6";
    k7 = "foo7";
    k8 = "foo8";
    k9 = "foo9";
    k10 = "foo10";
    k11 = "foo11";
    k12 = "foo12";
    k13 = "foo13";
    k14 = "foo14";
    k15 = "foo15";
    k16 = "foo16";
    k17 = "foo17";
    k18 = "foo18";
    k19 = "foo19";
    k20 = "foo20";
};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
JS object
m = {};
m[k1] = 1;
m[k2] = 2;
m[k3] = 3;
m[k4] = 4;
m[k5] = 5;
m[k6] = 6;
m[k7] = 7;
m[k8] = 8;
m[k9] = 9;
m[k10] = 10;
m[k11] = 11;
m[k12] = 12;
m[k13] = 13;
m[k14] = 14;
m[k15] = 15;
m[k16] = 16;
m[k17] = 17;
m[k18] = 18;
m[k19] = 19;
m[k20] = 20;
pending…
ObjMap
m = phm.empty_obj_map();
m = phm.assocwrapper(m, k1, 1);
m = phm.assocwrapper(m, k2, 2);
m = phm.assocwrapper(m, k3, 3);
m = phm.assocwrapper(m, k4, 4);
m = phm.assocwrapper(m, k5, 5);
m = phm.assocwrapper(m, k6, 6);
m = phm.assocwrapper(m, k7, 7);
m = phm.assocwrapper(m, k8, 8);
m = phm.assocwrapper(m, k9, 9);
m = phm.assocwrapper(m, k10, 10);
m = phm.assocwrapper(m, k11, 11);
m = phm.assocwrapper(m, k12, 12);
m = phm.assocwrapper(m, k13, 13);
m = phm.assocwrapper(m, k14, 14);
m = phm.assocwrapper(m, k15, 15);
m = phm.assocwrapper(m, k16, 16);
m = phm.assocwrapper(m, k17, 17);
m = phm.assocwrapper(m, k18, 18);
m = phm.assocwrapper(m, k19, 19);
m = phm.assocwrapper(m, k20, 20);
pending…
HashMap
m = phm.empty_hash_map();
m = phm.assocwrapper(m, k1, 1);
m = phm.assocwrapper(m, k2, 2);
m = phm.assocwrapper(m, k3, 3);
m = phm.assocwrapper(m, k4, 4);
m = phm.assocwrapper(m, k5, 5);
m = phm.assocwrapper(m, k6, 6);
m = phm.assocwrapper(m, k7, 7);
m = phm.assocwrapper(m, k8, 8);
m = phm.assocwrapper(m, k9, 9);
m = phm.assocwrapper(m, k10, 10);
m = phm.assocwrapper(m, k11, 11);
m = phm.assocwrapper(m, k12, 12);
m = phm.assocwrapper(m, k13, 13);
m = phm.assocwrapper(m, k14, 14);
m = phm.assocwrapper(m, k15, 15);
m = phm.assocwrapper(m, k16, 16);
m = phm.assocwrapper(m, k17, 17);
m = phm.assocwrapper(m, k18, 18);
m = phm.assocwrapper(m, k19, 19);
m = phm.assocwrapper(m, k20, 20);
pending…
PersistentHashMap
m = phm.empty_persistent_hash_map();
m = phm.assocwrapper(m, k1, 1);
m = phm.assocwrapper(m, k2, 2);
m = phm.assocwrapper(m, k3, 3);
m = phm.assocwrapper(m, k4, 4);
m = phm.assocwrapper(m, k5, 5);
m = phm.assocwrapper(m, k6, 6);
m = phm.assocwrapper(m, k7, 7);
m = phm.assocwrapper(m, k8, 8);
m = phm.assocwrapper(m, k9, 9);
m = phm.assocwrapper(m, k10, 10);
m = phm.assocwrapper(m, k11, 11);
m = phm.assocwrapper(m, k12, 12);
m = phm.assocwrapper(m, k13, 13);
m = phm.assocwrapper(m, k14, 14);
m = phm.assocwrapper(m, k15, 15);
m = phm.assocwrapper(m, k16, 16);
m = phm.assocwrapper(m, k17, 17);
m = phm.assocwrapper(m, k18, 18);
m = phm.assocwrapper(m, k19, 19);
m = phm.assocwrapper(m, k20, 20);
pending…
TransientHashMap
m = phm.empty_persistent_hash_map();
m = phm.transientwrapper(m);
m = phm.assocbangwrapper(m, k1, 1);
m = phm.assocbangwrapper(m, k2, 2);
m = phm.assocbangwrapper(m, k3, 3);
m = phm.assocbangwrapper(m, k4, 4);
m = phm.assocbangwrapper(m, k5, 5);
m = phm.assocbangwrapper(m, k6, 6);
m = phm.assocbangwrapper(m, k7, 7);
m = phm.assocbangwrapper(m, k8, 8);
m = phm.assocbangwrapper(m, k9, 9);
m = phm.assocbangwrapper(m, k10, 10);
m = phm.assocbangwrapper(m, k11, 11);
m = phm.assocbangwrapper(m, k12, 12);
m = phm.assocbangwrapper(m, k13, 13);
m = phm.assocbangwrapper(m, k14, 14);
m = phm.assocbangwrapper(m, k15, 15);
m = phm.assocbangwrapper(m, k16, 16);
m = phm.assocbangwrapper(m, k17, 17);
m = phm.assocbangwrapper(m, k18, 18);
m = phm.assocbangwrapper(m, k19, 19);
m = phm.assocbangwrapper(m, k20, 20);
m = phm.persistentwrapper(m);
pending…

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

Compare results of other browsers

0 comments

Add a comment