Script Preparation code:
x
 
var x = new Float32Array(1000000),
    y = new Float32Array(1000000),
    z = new Float32Array(1000000);
var vectors = [];
for (var i = 0; i < 1000000; i++) {
    x[i] = Math.random() * 100;
    y[i] = Math.random() * 100;
    z[i] = Math.random() * 100;
    vectors[i] = {
        x: x[i],
        y: y[i],
        z: z[i]
    };
}
var vector;
Tests:
  • soa

     
    for (var i = 0, li=x.length; i < li; ++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;
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    soa
    aos

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 2 years ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:100.0) Gecko/20100101 Firefox/100.0
Firefox 100 on Mac OS X 10.15
View result in a separate tab
Test name Executions per second
soa 629.7 Ops/sec
aos 257.1 Ops/sec