whee
This commit is contained in:
parent
5e084b9a71
commit
35e744eacc
2 changed files with 14 additions and 13 deletions
|
@ -1,12 +1,8 @@
|
||||||
# speci.js - specialization benchmark test
|
# speci.js - specialization benchmark test
|
||||||
|
|
||||||
Tests two-property objects with {x, y} or {y, x} and access in a tight loop
|
Tests two-property objects with {x, y} or {y, x} and access in a tight loop
|
||||||
When the array contains consistent elements it optimizes well, but the first
|
When the array contains consistent elements it optimizes well, but slows down
|
||||||
run is much slower on a randomly mixed array.
|
as you add variants, and slows down A LOT if you add other random properties
|
||||||
|
|
||||||
Subsequent runs come up much faster as the higher-tier compilers in V8 can
|
|
||||||
handle a couple of different variants -- but this might not be true of all
|
|
||||||
possibilities. 256 randomized variants is linearly slower.
|
|
||||||
|
|
||||||
```
|
```
|
||||||
% make test
|
% make test
|
||||||
|
|
19
speci.js
19
speci.js
|
@ -16,17 +16,22 @@ function doit(mode) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function make_rand_prefix(x, y) {
|
|
||||||
let rando = (Math.random() * (2 ** 32 - 1)) | 0;
|
|
||||||
let r = 'random' + rando;
|
|
||||||
let o = {[r]: r, x, y};
|
|
||||||
return o;
|
|
||||||
}
|
|
||||||
|
|
||||||
function make_rand_suffix(x, y) {
|
function make_rand_suffix(x, y) {
|
||||||
let rando = (Math.random() * (2 ** 32 - 1)) | 0;
|
let rando = (Math.random() * (2 ** 32 - 1)) | 0;
|
||||||
let r = 'random' + rando;
|
let r = 'random' + rando;
|
||||||
let o = {x, y, [r]: r};
|
let o = {x, y, [r]: r};
|
||||||
|
|
||||||
|
// Equivalent to:
|
||||||
|
//let o = make_x_first(x, y);
|
||||||
|
//o[r] = r;
|
||||||
|
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
|
function make_rand_prefix(x, y) {
|
||||||
|
let rando = (Math.random() * (2 ** 32 - 1)) | 0;
|
||||||
|
let r = 'random' + rando;
|
||||||
|
let o = {[r]: r, x, y};
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue