Script Preparation code:
AخA
 
var n = 100000;
var x = [], y =[], z =[];
var x32 = new Float32Array(n);
var y32 = new Float32Array(n);
var z32 = new Float32Array(n);
var vectors = [];
for(var i = 0; i < n; i++){
  x[i] = Math.random()*100|0;
  y[i] = Math.random()*100|0;
  z[i] = Math.random()*100|0;
 
  x32[i] = Math.random()*100|0;
  y32[i] = Math.random()*100|0;
  z32[i] = Math.random()*100|0;
  
  vectors[i] = { x: x[i], y: y[i], z: z[i] };
}
var vector;
Tests:
  • soa

     
    for (var i = 0; i < n; ++i) {
        x[i] = 2 * x[i];
        y[i] = 2 * y[i];
        z[i] = 2 * z[i];
    }
  • aos

     
    for (var i = 0, li=vectors.length; i < li; ++i) {
        vector = vectors[i];
        vector.x = 2 * vector.x;
        vector.y = 2 * vector.y;
        vector.z = 2 * vector.z;
    }
  • typed soa

     
    for (var i = 0; i < n; ++i) {
        x32[i] = 2 * x32[i];
        y32[i] = 2 * y32[i];
        z32[i] = 2 * z32[i];
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    soa
    aos
    typed soa

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (iPhone; CPU iPhone OS 16_0_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1
Mobile Safari 16 on iOS 16.0.3
View result in a separate tab
Test name Executions per second
soa 16.0 Ops/sec
aos 13.2 Ops/sec
typed soa 16.1 Ops/sec