rng

Benchmark created on


Setup

let uint8a = new Uint8Array(10);
let uint16a = new Uint16Array(6);
let uint32a = new Uint32Array(3);
let alph = "0123456789abcdefghijklmnopqrstuvwxyz";
let result = "";

Test runner

Ready to run.

Testing in
TestOps/sec
crypto (uint8)
crypto.getRandomValues(uint8a);

let remain = (uint8a[0] >>> 5)
  | ((uint8a[1] & 0xe0) >>> 2)
  | ((uint8a[2] & 0xe0) << 1)
  | ((uint8a[3] & 0xe0) << 4)
  | ((uint8a[4] & 0xe0) << 7)
  | ((uint8a[5] & 0xe0) << 10)
  | ((uint8a[6] & 0xe0) << 13)
  | ((uint8a[7] & 0xe0) << 16)
  | ((uint8a[8] & 0xe0) << 19)
  | ((uint8a[9] & 0xe0) << 21);

result = alph[uint8a[0] & 0x1f]
+ alph[uint8a[1] & 0x1f]
+ alph[uint8a[2] & 0x1f]
+ alph[uint8a[3] & 0x1f]
+ alph[uint8a[4] & 0x1f]
+ alph[uint8a[5] & 0x1f]
+ alph[uint8a[6] & 0x1f]
+ alph[uint8a[7] & 0x1f]
+ alph[uint8a[8] & 0x1f]
+ alph[uint8a[9] & 0x1f]
+ alph[remain & 0x1f]
+ alph[(remain >>> 5) & 0x1f]
+ alph[(remain >>> 10) & 0x1f]
+ alph[(remain >>> 15) & 0x1f]
+ alph[(remain >>> 20) & 0x1f]
+ alph[(remain >>> 25) & 0x1f];




ready
crypto (uint16)
crypto.getRandomValues(uint16a);

result = alph[uint16a[0] & 0x1f]
+ alph[(uint16a[0] >>> 5) & 0x1f]
+ alph[uint16a[0] >>> 11]
+ alph[uint16a[1] & 0x1f]
+ alph[(uint16a[1] >>> 5) & 0x1f]
+ alph[uint16a[1] >>> 11]
+ alph[uint16a[2] & 0x1f]
+ alph[(uint16a[2] >>> 5) & 0x1f]
+ alph[uint16a[2] >>> 11]
+ alph[uint16a[3] & 0x1f]
+ alph[(uint16a[3] >>> 5) & 0x1f]
+ alph[uint16a[3] >>> 11]
+ alph[uint16a[4] & 0x1f]
+ alph[(uint16a[4] >>> 5) & 0x1f]
+ alph[uint16a[4] >>> 11]
+ alph[uint16a[5] & 0x1f];
ready
crypto (uint32)
crypto.getRandomValues(uint32a)

result = alph[uint32a[0] & 0x1f]
+ alph[(uint32a[0] >>> 5) & 0x1f]
+ alph[(uint32a[0] >>> 10) & 0x1f]
+ alph[(uint32a[0] >>> 15) & 0x1f]
+ alph[(uint32a[0] >>> 20) & 0x1f]
+ alph[uint32a[0] >>> 27]
+ alph[uint32a[1] & 0x1f]
+ alph[(uint32a[1] >>> 5) & 0x1f]
+ alph[(uint32a[1] >>> 10) & 0x1f]
+ alph[(uint32a[1] >>> 15) & 0x1f]
+ alph[(uint32a[1] >>> 20) & 0x1f]
+ alph[uint32a[1] >>> 27]
+ alph[uint32a[2] & 0x1f]
+ alph[(uint32a[2] >>> 5) & 0x1f]
+ alph[uint32a[2] >>> 27]
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.