Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36
Chrome 53
Mac OS X 10.11.6
Other
8 years ago
Test name Executions per second
SoA 304.0 Ops/sec
AoS 269.3 Ops/sec
Script Preparation code:
x
 
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()} );
}
Tests:
  • SoA

     
    for (var i = 0; i < N; ++i) {
        x3[i] = x1[i] + x2[i];
    }
  • AoS

     
    for (var i = 0; i < N; ++i) {
        AoS3[i].x = AoS1[i].x + AoS2[i].x;
    }