On my microbenchmark this doubles the speed of common operations on ES6
Map. I
think it's a simplification too.
Before (times in ms):
Read 514
Update 1083
Set/delete 2075
After:
Read 231
Update 484
Set/delete 1619
The microbenchmark:
function MyKey() {
this.x = "foo";
}
function setup(key) {
var m = new Map();
m.set(key, 42);
for (var i = 0; i < 20; i++) {
m.set(new MyKey(), 4);
}
return m;
}
function read(map, key) {
for (var i = 0; i < 10000000; i++) {
if (map.get(key) != 42) {
blowup();
}
}
}
function update(map, key) {
for (var i = 0; i < 5000000; i++) {
map.set(key, 41);
if (map.get(key) != 41) {
blowup();
}
map.set(key, 42);
if (map.get(key) != 42) {
blowup();
}
}
}
function setdelete(map, key) {
for (var i = 0; i < 5000000; i++) {
map.delete(key, 41);
if (map.get(key) != undefined) {
blowup();
}
map.set(key, 42);
if (map.get(key) != 42) {
blowup();
}
}
}
var key = new MyKey();
var map = setup(key);
var start = new Date();
read(map, key);
var end = new Date();
print("Read " + (end - start));
var start = new Date();
update(map, key);
var end = new Date();
print("Update " + (end - start));
var start = new Date();
setdelete(map, key);
var end = new Date();
print("Set/delete " + (end - start));
https://codereview.chromium.org/1142493002/
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.