Test name | Executions per second |
---|---|
SoA | 635.7 Ops/sec |
AoS | 620.5 Ops/sec |
var N = 10000
var x1 = new Float32Array(N);
var x2 = new Float32Array(N);
var x3 = new Float32Array(N);
var AoS1 = [];
var AoS2 = [];
var AoS3 = [];
for (var i = 0; i < N; ++i) {
x1[i] = Math.random();
x2[i] = Math.random();
x3[i] = Math.random();
AoS1.push( {x:Math.random(), y:Math.random(), z:Math.random()} );
AoS2.push( {x:Math.random(), y:Math.random(), z:Math.random()} );
AoS3.push( {x:Math.random(), y:Math.random(), z:Math.random()} );
}
for (var i = 0; i < N; ++i) {
x3[i] = x1[i] + x2[i];
}
for (var i = 0; i < N; ++i) {
AoS3[i].x = AoS1[i].x + AoS2[i].x;
}