add 256-bucket variant, slower !
This commit is contained in:
parent
0592fb71f9
commit
5e030cba07
1 changed files with 21 additions and 2 deletions
23
speci.js
23
speci.js
|
@ -8,7 +8,7 @@ function doit() {
|
||||||
return {y, x};
|
return {y, x};
|
||||||
}
|
}
|
||||||
|
|
||||||
function make_random(x, y) {
|
function make_mixed(x, y) {
|
||||||
if (Math.random() > 0.5) {
|
if (Math.random() > 0.5) {
|
||||||
return make_y_first(x, y);
|
return make_y_first(x, y);
|
||||||
} else {
|
} else {
|
||||||
|
@ -16,6 +16,21 @@ function doit() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function make_randomized(x, y) {
|
||||||
|
let rando = (Math.random() * (2 ** 32 - 1)) | 0;
|
||||||
|
let buckets = 256;
|
||||||
|
let r = 'random' + (rando % buckets);
|
||||||
|
let o = {[r]: r};
|
||||||
|
if (Math.random() > 0.5) {
|
||||||
|
o.y = y;
|
||||||
|
o.x = x;
|
||||||
|
} else {
|
||||||
|
o.x = x;
|
||||||
|
o.y = y;
|
||||||
|
}
|
||||||
|
return o;
|
||||||
|
}
|
||||||
|
|
||||||
const million = 1000 * 1000;
|
const million = 1000 * 1000;
|
||||||
const n = 10 * million;
|
const n = 10 * million;
|
||||||
|
|
||||||
|
@ -29,7 +44,8 @@ function doit() {
|
||||||
|
|
||||||
const x_first = bulk(make_x_first);
|
const x_first = bulk(make_x_first);
|
||||||
const y_first = bulk(make_y_first);
|
const y_first = bulk(make_y_first);
|
||||||
const mixed = bulk(make_random);
|
const mixed = bulk(make_mixed);
|
||||||
|
const randomized = bulk(make_randomized);
|
||||||
|
|
||||||
function time(func) {
|
function time(func) {
|
||||||
const start = Date.now();
|
const start = Date.now();
|
||||||
|
@ -68,6 +84,9 @@ function doit() {
|
||||||
console.log(`** mixed`);
|
console.log(`** mixed`);
|
||||||
demo(mixed);
|
demo(mixed);
|
||||||
|
|
||||||
|
console.log(`** randomized`);
|
||||||
|
demo(randomized);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
doit();
|
doit();
|
Loading…
Reference in a new issue