Script Preparation code:
AخA
 
var str = ""
var arr = []
for (let i = 0; i < 100000; ++i) {
    str += 'ABC::';
    arr.push('ABC');
}
Tests:
  • String slice

    x
     
    function process(s){
      return s.slice(0,s.lastIndexOf(':'))
    }
    while (str.length) {
    str = process(str);
    }
  • Array slice

     
    function process(a){
      return a.slice(0,a.length-2)
    }
    while (arr.length) {
    arr = process(arr);
    }
  • Array with creation

     
    let str = ""
    for (let i = 0; i < 100000; ++i) {
        str += 'ABC:';
    }
    function process(a){
      return a.slice(0,a.length-2)
    }
    while (arr.length) {
    arr = process(arr);
    }
  • String with creation

     
    let str = ""
    for (let i = 0; i < 100000; ++i) {
        str += 'ABC:';
    }
    function process(s){
      return s.slice(0,s.lastIndexOf(':'))
    }
    while (str.length) {
    str = process(str);
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    String slice
    Array slice
    Array with creation
    String with creation

    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:109.0) Gecko/20100101 Firefox/113.0
Firefox 113 on Mac OS X 10.15
View result in a separate tab
Test name Executions per second
String slice 153434336.0 Ops/sec
Array slice 119252856.0 Ops/sec
Array with creation 1756.4 Ops/sec
String with creation 238.2 Ops/sec