v1
12/30/2025 by motts_ -00
Setup HTML - click to add setup HTML
disable setup JavaScript
Setup JavaScript
    const ARRAY_SIZE = 1_000_000;

    const aos = [];
    for (let i = 0; i < ARRAY_SIZE; i++) {
        aos.push({ x: i, y: i * 2, z: i * 3 });
    }

    const soa = {
        x: new Float64Array(ARRAY_SIZE),
        y: new Float64Array(ARRAY_SIZE),
        z: new Float64Array(ARRAY_SIZE)
    };
    for (let i = 0; i < ARRAY_SIZE; i++) {
        soa.x[i] = i;
        soa.y[i] = i * 2;
        soa.z[i] = i * 3;
    }

    const interleaved = new Float64Array(ARRAY_SIZE * 3);
    for (let i = 0; i < ARRAY_SIZE; i++) {
        const base = i * 3;
        interleaved[base]     = i;
        interleaved[base + 1] = i * 2;
        interleaved[base + 2] = i * 3;
    }

delete caserun single casemove downdrag and drop case


ready



    let sumAoS = 0;
        for (let i = 0; i < ARRAY_SIZE; i++) {
            sumAoS += aos[i].x + aos[i].y + aos[i].z;
        }

delete caserun single casemove upmove downdrag and drop case


ready



    let sumSoA = 0;
        for (let i = 0; i < ARRAY_SIZE; i++) {
            sumSoA += soa.x[i] + soa.y[i] + soa.z[i];
        }

delete caserun single casemove updrag and drop case


ready



    let sumInterleaved = 0;
        for (let i = 0; i < ARRAY_SIZE; i++) {
            const base = i * 3;
            sumInterleaved +=
                interleaved[base] +
                interleaved[base + 1] +
                interleaved[base + 2];
        }

Test Case - click to add another test case
Teardown JS - click to add teardown JavaScript
Output (DOM) - click to monitor output (DOM) while test is running
RUN