Test name | Executions per second |
---|---|
array[0] | 9814.5 Ops/sec |
set / get | 1147.0 Ops/sec |
float 32 | 9300.4 Ops/sec |
extended float 32 | 9258.9 Ops/sec |
int 32 | 9182.1 Ops/sec |
extended int 32 | 9053.8 Ops/sec |
simple | 1093.6 Ops/sec |
array[0] 2 | 9794.5 Ops/sec |
simple 2 | 12068.7 Ops/sec |
simple 3 | 12146.3 Ops/sec |
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];
}
let sum = 0;
for (let i = 0; i < size; i++) {
obj.x = Math.random () * 1000;
sum += obj.x;
}
let sum = 0;
for (let i = 0; i < size; i++) {
arrayF32[0] = Math.random () * 1000;
sum += arrayF32[0];
}
let sum = 0;
for (let i = 0; i < size; i++) {
arrayEF32.x = Math.random () * 1000;
sum += arrayEF32.x;
}
let sum = 0;
for (let i = 0; i < size; i++) {
arrayI32[0] = Math.random () * 1000;
sum += arrayI32[0];
}
let sum = 0;
for (let i = 0; i < size; i++) {
arrayEI32.x = Math.random () * 1000;
sum += arrayEI32.x;
}
let sum = 0;
for (let i = 0; i < size; i++) {
x = Math.random () * 1000;
sum += x;
}
let sum = 0;
for (let i = 0; i < size; i++) {
array[0] = Math.random () * 1000;
sum += array[0];
}
let sum = 0;
for (let i = 0; i < size; i++)
sum += Math.random () * 1000;
let sum = 0;
for (let i = 0; i < size; i++) {
const x = Math.random () * 1000;
sum += x;
}