Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
soa vs aos vs typed soa
As titled
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Mobile Safari/537.36
Browser:
Chrome Mobile 117
Operating system:
Android
Device Platform:
Mobile
Date tested:
2 years ago
Test name
Executions per second
soa
0.9 Ops/sec
aos
0.6 Ops/sec
typed soa
0.9 Ops/sec
Script Preparation code:
var N = 1000000; var x = new Array(N), y = new Array(N), vx = new Array(N), vy = new Array(N); var buffer = new ArrayBuffer(N*8*4); var tx = new Float64Array(buffer, 0, N), ty = new Float64Array(buffer, N*8, N), tvx = new Float64Array(buffer, N*16, N), tvy = new Float64Array(buffer, N*24, N); var vectors = new Array(N); for(var i = 0; i < N; ++i){ x[i] = tx[i] = Math.random()*100|0; y[i] = ty[i] = Math.random()*100|0; vx[i] = tvx[i] = Math.random()*100|0; vy[i] = tvy[i] = Math.random()*100|0; vectors[i] = { x: x[i], y: y[i], vx: vx[i], vy: vy[i] }; } var vector;
Tests:
soa
for (var i = 0; i < N; ++i) { x[i] += vx[i]; y[i] += vy[i]; }
aos
for (var i = 0; i < N; ++i) { vector = vectors[i]; vector.x += vector.vx; vector.y += vector.vy; }
typed soa
for (var i = 0; i < N; ++i) { tx[i] += tvx[i]; ty[i] += tvy[i]; }