Script Preparation code:
AخA
 
let repeat_count=5000;
let pattern = 'abcdefgh';
var source = pattern.repeat(5);
Tests:
  • split + map + instance

     
    const values = source.split('').map(c=>c.charCodeAt());
    const res = new Uint8Array(values);
  • for .. in 1

     
    const values = Array(source.length);
    for (let i in source)
      values[i]=source.charCodeAt(i);
    const res = new Uint8Array(values);
      
  • for .. in 2

    x
     
    const values = Array();
    for (let i in source)
      values.push(source.charCodeAt());
    const res = new Uint8Array(values);
  • classical loop

     
    const values = Array(source.length);
    for (let i =0; i<source.length; i++)
      values[i]=source.charCodeAt(i);
    const res = new Uint8Array(values);
  • classical loop 2

     
    const res = new Uint8Array(source.length);
    for (let i =0; i<source.length; i++)
      res[i]=source.charCodeAt(i);
  • for .. in loop 2

     
    const res = new Uint8Array(source.length);
    for (let i in source)
      res[i]=source.charCodeAt(i);
  • split+forEach

     
    const res = new Uint8Array(source.length);
    source.split('').forEach( (c,i) => res[i] = source.charCodeAt(i) )
  • for .. in loop 3

     
    const res = new Uint8Array(source.length);
    for (let i in source)
      res[i]=source.charCodeAt(i);  
  • for .. of loop 2

     
    const res = new Uint8Array(source.length);
    let i=0;
    for (let c of source)
      res[i++]=c.charCodeAt();  
  • from

     
    const res = Uint8Array.from(source, c=>c.charCodeAt());
  • from + split

     
    const res = Uint8Array.from(source.split(''), c=>c.charCodeAt());
  • TextEncoder

     
    const res = new TextEncoder().encode(source)
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    split + map + instance
    for .. in 1
    for .. in 2
    classical loop
    classical loop 2
    for .. in loop 2
    split+forEach
    for .. in loop 3
    for .. of loop 2
    from
    from + split
    TextEncoder

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:126.0) Gecko/20100101 Firefox/126.0
Firefox 126 on Mac OS X 10.15
View result in a separate tab
Test name Executions per second
split + map + instance 724890.5 Ops/sec
for .. in 1 131956.3 Ops/sec
for .. in 2 127467.5 Ops/sec
classical loop 2565191.5 Ops/sec
classical loop 2 9882512.0 Ops/sec
for .. in loop 2 105923.1 Ops/sec
split+forEach 1427314.5 Ops/sec
for .. in loop 3 105692.0 Ops/sec
for .. of loop 2 842994.2 Ops/sec
from 672054.6 Ops/sec
from + split 438502.0 Ops/sec
TextEncoder 2529049.2 Ops/sec