Script Preparation code:
x
 
function tempSwap(array) {
    const length = array.length;
    const swap1 = Math.floor(Math.random() * length);
    const swap2 = Math.floor(Math.random() * length);
    const temp = array[swap1];
    array[swap1] = array[swap2];
    array[swap2] = array[temp];
}
function destructuringSwap(array) {
    const length = array.length;
    const swap1 = Math.floor(Math.random() * length);
    const swap2 = Math.floor(Math.random() * length);
    return [
        array[swap1],
        array[swap2]
    ] = [
        array[swap2],
        array[swap1]
    ];
}
function xorSwap(array) {
const length = array.length;
    const swap1 = Math.floor(Math.random() * length);
    const swap2 = Math.floor(Math.random() * length);
    array[swap1] ^= array[swap2];
    array[swap2] ^= array[swap1];
    array[swap1] ^= array[swap2];
}
Tests:
  • Length 10 temp swap

     
    tempSwap(new Array(10));
  • Length 10 destructuring swap

     
    destructuringSwap(new Array(10));
  • Length 100 temp swap

     
    tempSwap(new Array(100));
  • Length 100 destructuring swap

     
    destructuringSwap(new Array(100));
  • Length 1000 temp swap

     
    tempSwap(new Array(1000));
  • Length 1000 destructuring swap

     
    destructuringSwap(new Array(1000));
  • Length 10 xor swap

     
    xorSwap(new Array(10));
  • Length 100 xor swap

     
    xorSwap(new Array(100));
  • Length 1000 xor swap

     
    xorSwap(new Array(1000));
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Length 10 temp swap
    Length 10 destructuring swap
    Length 100 temp swap
    Length 100 destructuring swap
    Length 1000 temp swap
    Length 1000 destructuring swap
    Length 10 xor swap
    Length 100 xor swap
    Length 1000 xor swap

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one month ago)
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Chrome 134 on Linux
View result in a separate tab
Test name Executions per second
Length 10 temp swap 33708244.0 Ops/sec
Length 10 destructuring swap 46224932.0 Ops/sec
Length 100 temp swap 17193668.0 Ops/sec
Length 100 destructuring swap 19618372.0 Ops/sec
Length 1000 temp swap 2885102.8 Ops/sec
Length 1000 destructuring swap 2962069.2 Ops/sec
Length 10 xor swap 32990530.0 Ops/sec
Length 100 xor swap 16357835.0 Ops/sec
Length 1000 xor swap 3115000.0 Ops/sec