ES6 Map vs Object properties
JavaScript performance comparison
Preparation code
<script>
function randomString()
{
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
for( var i=0; i < 5; i++ )
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}
</script>
<script>
Benchmark.prototype.setup = function() {
var map = new Map();
var obj = Object.create(null);
var map2 = new Map();
var obj2 = Object.create(null);
for (var i=0; i < 1000; i++) {
var key = randomString();
var val = randomString();
map2.set(key,val);
obj2[key] = val;
}
};
</script>
Test runner
Warning! For accurate results, please disable Firebug before running the tests. (Why?)
Java applet disabled.
Test | Ops/sec | |
---|---|---|
Iterate Object.keys
|
|
pending… |
map.set(key,val)
|
|
pending… |
iterate map forEach
|
|
pending… |
iterate map forEach cached
|
|
pending… |
Iterate Object
|
|
pending… |
Iterate Map
|
|
pending… |
obj[key] = val;
|
|
pending… |
Compare results of other browsers
Revisions
You can edit these tests or add even more tests to this page by appending /edit
to the URL.
- Revision 1: published Rob Becker
- Revision 2: published Rob Becker
- Revision 3: published
- Revision 8: published Nathan Reid
- Revision 9: published dystroy
- Revision 10: published Goktug and last updated
- Revision 11: published Goktug
- Revision 12: published Stefan
- Revision 14: published styfle
- Revision 15: published
- Revision 16: published
- Revision 17: published and last updated
- Revision 18: published Gabriel
- Revision 19: published
- Revision 21: published Morris Brodersen
- Revision 22: published
- Revision 23: published floopy
- Revision 24: published Goktug
- Revision 25: published Juliana Peña
- Revision 26: published
- Revision 27: published
- Revision 30: published Prathap Reddy
- Revision 31: published bitshiffed
- Revision 32: published
- Revision 33: published
- Revision 34: published
- Revision 35: published Brandon Papworth
- Revision 36: published Brandon Papworth
- Revision 37: published
- Revision 38: published
- Revision 39: published
- Revision 40: published Chris Khoo
- Revision 41: published
- Revision 42: published
- Revision 43: published
- Revision 44: published
- Revision 45: published
- Revision 46: published
- Revision 47: published
- Revision 48: published
- Revision 49: published
- Revision 50: published
- Revision 51: published
- Revision 52: published
- Revision 53: published
- Revision 55: published markelog
- Revision 56: published
- Revision 57: published
- Revision 58: published
- Revision 59: published demkalkov
- Revision 60: published Ben
- Revision 61: published sami
- Revision 62: published sami
- Revision 63: published sami
- Revision 64: published
- Revision 69: published Joel Brage
- Revision 70: published Joel Brage
- Revision 71: published
- Revision 73: published Daniel Wendel
- Revision 74: published jin
- Revision 85: published
- Revision 88: published jin
- Revision 89: published
- Revision 90: published Marius Petcu
- Revision 92: published
- Revision 93: published
- Revision 94: published
- Revision 95: published
- Revision 96: published Balrob
- Revision 97: published Balrob and last updated
- Revision 98: published balrob and last updated
- Revision 99: published Arun
- Revision 100: published alexandernst
- Revision 101: published
- Revision 102: published
- Revision 103: published
- Revision 105: published
- Revision 106: published
- Revision 107: published
- Revision 109: published
- Revision 111: published
- Revision 112: published Joe
- Revision 115: published Joe
- Revision 116: published Joe
- Revision 120: published
- Revision 121: published Kieran Blight
- Revision 122: published Andrei Kalendarov
- Revision 123: published Alexander
- Revision 124: published Žanas Stundys
- Revision 125: published dieow
- Revision 126: published dieow
- Revision 127: published dieow
- Revision 128: published dieow
- Revision 129: published dieow
- Revision 130: published Andrii Muzalevskyi
- Revision 132: published Daniele Orlando
- Revision 136: published ZAlexz
- Revision 142: published
- Revision 143: published ZAlexz
- Revision 144: published ZAlexz
- Revision 145: published Marius
- Revision 146: published Marius
- Revision 155: published Shrey Choudhary
- Revision 156: published
- Revision 157: published
- Revision 158: published
- Revision 160: published Donghyun Seo
- Revision 161: published Donghyun Seo
- Revision 162: published Donghyun Seo
- Revision 163: published Donghyun Seo
- Revision 164: published
- Revision 165: published
- Revision 167: published ZAlexz
- Revision 168: published
- Revision 169: published
- Revision 170: published
- Revision 173: published Steven Bower
- Revision 174: published Jean Osorio
- Revision 175: published Jean Osorio
- Revision 176: published
- Revision 177: published Jean Osorio
- Revision 178: published
- Revision 179: published uh
- Revision 180: published Jordan Running
- Revision 181: published Antoine Theriault-Brunet
- Revision 185: published Ryan Carniato
- Revision 186: published Ryan Carniato
- Revision 187: published Ryan Carniato
- Revision 188: published Ryan Carniato
- Revision 189: published Adrian
- Revision 190: published Serhii
- Revision 191: published Serhii
- Revision 192: published Serhii
- Revision 193: published Serhii
- Revision 194: published Ralph
- Revision 195: published Ralph
- Revision 197: published Alex Mitchell
- Revision 201: published Alex Mitchell
- Revision 202: published
- Revision 203: published Jamie Pate
- Revision 204: published
- Revision 205: published
- Revision 206: published
- Revision 209: published Antti Palola
- Revision 210: published
- Revision 211: published
- Revision 212: published
- Revision 213: published
- Revision 214: published Antti Palola
- Revision 217: published
- Revision 218: published Michael Hall
- Revision 219: published Michael Hall
- Revision 220: published Michael Hall
- Revision 221: published Michael Hall
- Revision 222: published Michael Hall
- Revision 223: published Michael Hall
0 Comments