Tests:
  • uuidv4

    AخA
     
    bits = crypto.getRandomValues(new Uint8Array(20))
    bits[5] = (bits[5] & 0x4F) | 0x40;
    bits[8] = (bits[8] & 0xBF) | 0x80;
    bits = [...bits].map(e => e.toString(16).padStart(2,'0') ).reduce((a,c,i)=>a+([4,7,10,13].includes(i)?'-':c));
  • random 1

    x
     
    Array(20).fill(0).map(()=>crypto.getRandomValues(new Uint8Array(1))[0].toString(16).padStart(2,'0')).reduce((a,c,i)=>a+([4,7,10,13].includes(i)?'-':c))
  • random 2

     
    ([1e3]+-10+-10+-1e5).replace(/\d/g, () => crypto.getRandomValues(new Uint8Array(1))[0].toString(16).padStart(2,'0'))
  • random 3

     
    let s=[]; crypto.getRandomValues(new Uint8Array(20)).map( e => s.push(e.toString(16).padStart(2,'0')) ); [4,7,10,13].map( idx => s[idx]='-' ); s.join('');
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    uuidv4
    random 1
    random 2
    random 3

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one month ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Chrome 134 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
uuidv4 207746.5 Ops/sec
random 1 24495.9 Ops/sec
random 2 33988.7 Ops/sec
random 3 240736.8 Ops/sec