Tests:
  • String concat

    x
     
    var arr = new Map()
    let prev=""
    for (let i = 0;i<1000;++i){
      prev+="ABC:";
      
    arr.set(+i,prev);
    } 
    function process(s){
      return s.slice(0,s.lastIndexOf(':'))
    }
    for (const [key,value] of arr){
      let s = process(arr.get(key))
      while(s.length){
        s = process(s)
      }
      arr.delete(key)
    }
  • Array spread

     
    var arr = new Map()
    let prev=[]
    for (let i = 0;i<1000;++i){
      prev =[...prev, 'ABC']
    arr.set(+i,prev);
    } 
    function process(s){
      return s.slice(0,s.length-1)
    }
    for (const [key,value] of arr){
      let s = process(arr.get(key))
      while(s.length){
        s = process(s)
      }
      arr.delete(key)
    }
  • Array with concat

     
    var arr = new Map()
    let prev=[]
    for (let i = 0;i<1000;++i){
      prev = prev.concat('ABC')
      arr.set(+i,prev);
    }
    function process(s){
      return s.slice(0,s.length-1)
    }
    for (const [key,value] of arr){
      let s = process(arr.get(key))
      while(s.length){
        s = process(s)
      }
      arr.delete(key)
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    String concat
    Array spread
    Array with concat

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36
Chrome 109 on Windows
View result in a separate tab
Test name Executions per second
String concat 37.3 Ops/sec
Array spread 18.4 Ops/sec
Array with concat 17.7 Ops/sec