Test name | Executions per second |
---|---|
array[0] | 9386.4 Ops/sec |
set / get | 1117.2 Ops/sec |
float 32 | 8900.2 Ops/sec |
extended float 32 | 9090.9 Ops/sec |
int 32 | 8791.2 Ops/sec |
extended int 32 | 8863.5 Ops/sec |
simple | 1145.0 Ops/sec |
array[0] 2 | 9573.9 Ops/sec |
simple 2 | 11528.8 Ops/sec |
simple 3 | 11625.6 Ops/sec |
<span id="foo"></span>
const span = document.getElementById ("foo");
class Float32ArrayExtended extends Float32Array {
constructor (val) {
super(1);
this[0] = val;
}
get x () { return this[0]; }
set x (v) { this[0] = v; }
}
class Int32ArrayExtended extends Int32Array {
constructor (val) {
super(1);
this[0] = val;
}
get x () { return this[0]; }
set x (v) { this[0] = v; }
}
const size = 10000;
const array = new Array(16).fill(1);
const arrayEF32 = new Float32ArrayExtended (16);
const arrayF32 = new Float32Array (16);
const arrayEI32 = new Int32ArrayExtended (16);
const arrayI32 = new Int32Array (16);
let x = 1;
const obj = {
get x() {
return array[0];
},
set x(value) {
array[0] = value;
}
};
let sum = 0;
for (let i = 0; i < size; i++) {
array[0] = Math.random () * 1000;
sum += array[0];
}
foo.innerText = sum;
let sum = 0;
for (let i = 0; i < size; i++) {
obj.x = Math.random () * 1000;
sum += obj.x;
}
foo.innerText = sum;
let sum = 0;
for (let i = 0; i < size; i++) {
arrayF32[0] = Math.random () * 1000;
sum += arrayF32[0];
}
foo.innerText = sum;
let sum = 0;
for (let i = 0; i < size; i++) {
arrayEF32.x = Math.random () * 1000;
sum += arrayEF32.x;
}
foo.innerText = sum;
let sum = 0;
for (let i = 0; i < size; i++) {
arrayI32[0] = Math.random () * 1000;
sum += arrayI32[0];
}
foo.innerText = sum;
let sum = 0;
for (let i = 0; i < size; i++) {
arrayEI32.x = Math.random () * 1000;
sum += arrayEI32.x;
}
foo.innerText = sum;
let sum = 0;
for (let i = 0; i < size; i++) {
x = Math.random () * 1000;
sum += x;
}
foo.innerText = sum;
let sum = 0;
for (let i = 0; i < size; i++) {
array[0] = Math.random () * 1000;
sum += array[0];
}
foo.innerText = sum;
let sum = 0;
for (let i = 0; i < size; i++)
sum += Math.random () * 1000;
foo.innerText = sum;
let sum = 0;
for (let i = 0; i < size; i++) {
const x = Math.random () * 1000;
sum += x;
}
foo.innerText = sum;