Script Preparation code:
x
 
function regex (s, c) {
  return (s.match(new RegExp(c, "g")) || []).length;
}
function split (s, c) {
  return s.split(c).length - 1;
}
function indexOf1 (s, c) {
  var i = 0, count = 0;
  while ((i = s.indexOf(c, i)) >= 0) {
    count++;
    i++;
  }
  return count;
}
function indexOf2 (s, c) {
  for (let i = -2, count = -1; i != -1; count++, i = s.indexOf(c, i + 1));
}
function singleChar (s, c) {
  for(let i = 0, count = 0, l = s.length; i < l; count += +(c === s[i++]));
}
var s = "Maecenas sed lacus erat. Sed fringilla dui ac mollis condimentum. Suspendisse bibendum nulla eros, ut lobortis orci posuere quis. Nunc fringilla ut metus ultrices dictum. Nunc elementum feugiat leo. Ut fermentum, enim vel vehicula posuere, metus eros imperdiet risus, at elementum mauris urna et quam. Ut vehicula, velit at placerat ornare, nulla nisi finibus sapien, non elementum tellus purus in ex. Donec pharetra elit in rhoncus placerat. Sed volutpat eget justo ut dapibus. Mauris consectetur turpis ac euismod aliquam. Sed pellentesque pretium nunc, nec rhoncus leo euismod ut. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur gravida sed urna quis tempus. Nam aliquet tortor convallis libero mollis luctus.";
var c = "a";
Tests:
  • regex

     
    window.result = regex(s, c);
  • split

     
    window.result = split(s, c);
  • indexOf1

     
    window.result = indexOf1(s, c);
  • indexOf2

     
    window.result = indexOf2(s, c);
  • singleChar

     
    window.result = singleChar(s, c);
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    regex
    split
    indexOf1
    indexOf2
    singleChar

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 7 months ago)
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
Chrome 128 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
regex 720311.9 Ops/sec
split 3245172.5 Ops/sec
indexOf1 1459711.2 Ops/sec
indexOf2 1503799.6 Ops/sec
singleChar 535844.1 Ops/sec