Run details:
Mozilla/5.0 (iPhone; CPU iPhone OS 18_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.3 Mobile/15E148 Safari/604.1
Mobile Safari 18
iOS 18.3
Mobile
one month ago
Test name Executions per second
big int array style 216184.4 Ops/sec
string style 202228.9 Ops/sec
hybrid 199249.1 Ops/sec
big int looped 204621.7 Ops/sec
Script Preparation code:
AخA
 
let A=['div','a','span','p','input','ul'].map(x=>document.createElement(x));
Tests:
  • big int array style

     
    let B=[0x1222225,0x1222225,0x1222225,0x1222225,0x1222225,0x1222225,0x1222225,0x1222225],C=Array(64),i=0;
    for(;i<64;i+=8){
      let x=B[i>>3];
      C[i+0]=A[x&15].cloneNode();
      x >>= 4;
      C[i+1]=A[x&15].cloneNode();
      x >>= 4;
      C[i+2]=A[x&15].cloneNode();
      x >>= 4;
      C[i+3]=A[x&15].cloneNode();
      x >>= 4;
      C[i+4]=A[x&15].cloneNode();
      x >>= 4;
      C[i+5]=A[x&15].cloneNode();
      x >>= 4;
      C[i+6]=A[x&15].cloneNode();
      x >>= 4;
      C[i+7]=A[x&15].cloneNode();
    }
  • string style

     
    let C=Array(64),i=0;
    for(;i<64;++i)C[i]=A['0122222501222225012222250122222501222225012222250122222501222225'.charCodeAt(i)-48].cloneNode();
  • hybrid

     
    let B='\x01\x22\x22\x25\x01\x22\x22\x25\x01\x22\x22\x25\x01\x22\x22\x25\x01\x22\x22\x25\x01\x22\x22\x25\x01\x22\x22\x25\x01\x22\x22\x25', C=Array(64),i=0;
    for(;i<32;++i) {
      let x=B.charCodeAt(i)
      C[(i<<1)]=A[x>>4].cloneNode();
      C[(i<<1)+1]=A[x&15].cloneNode();
    }
  • big int looped

    x
     
    let B=[0x1222225,0x1222225,0x1222225,0x1222225,0x1222225,0x1222225,0x1222225,0x1222225],C=Array(64),i=0;
    for(;i<64;i+=8){
      let x=B[i>>3], j=0;
      do {
        C[i+j]=A[x&15].cloneNode();
        x >>= 4;
        ++j;
      } while (j < 8);
    }
  • big int looped 2

     
    let B=[0x1222225,0x1222225,0x1222225,0x1222225,0x1222225,0x1222225,0x1222225,0x1222225],C=Array(64),i=0;
    for(;i<8;++i){
      let x=B[i], j=0;
      let z=(i<<3);
      do {
        C[z|j]=A[x&15].cloneNode();
        x >>= 4;
        ++j;
      } while (j < 8);
    }