Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
get x versus array[0] versus Float32Array versus Float32Array get versus Int32Array versus Int32Array extended
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36
Browser:
Chrome 133
Operating system:
Linux
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
array[0]
5981.4 Ops/sec
set / get
592.7 Ops/sec
float 32
5827.6 Ops/sec
extended float 32
5998.3 Ops/sec
int 32
5953.3 Ops/sec
extended int 32
5886.8 Ops/sec
Script Preparation code:
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); const obj = { get x() { return array[0]; }, set x(value) { array[0] = value; } };
Tests:
array[0]
let sum = 0; for (let i = 0; i < size; i++) { array[0] = Math.random () * 1000; sum += array[0]; }
set / get
let sum = 0; for (let i = 0; i < size; i++) { obj.x = Math.random () * 1000; sum += obj.x; }
float 32
let sum = 0; for (let i = 0; i < size; i++) { arrayF32[0] = Math.random () * 1000; sum += arrayF32[0]; }
extended float 32
let sum = 0; for (let i = 0; i < size; i++) { arrayEF32.x = Math.random () * 1000; sum += arrayEF32.x; }
int 32
let sum = 0; for (let i = 0; i < size; i++) { arrayI32[0] = Math.random () * 1000; sum += arrayI32[0]; }
extended int 32
let sum = 0; for (let i = 0; i < size; i++) { arrayEI32.x = Math.random () * 1000; sum += arrayEI32.x; }