Script Preparation code:
AخA
 
var strs = [
  "tag:cool",
  "a8798d75-18ed-473b-a28b-0b756dd99151",
  "asdf",
  "othertag:",
  "asdf:qwer:test",
  ":hmm",
  ":",
]
Tests:
  • split

    x
     
    function doSplit(str) {
      const parts = str.split(':')
      if (parts.length !== 2) {
        return null
      }
      
      return parts[0]
    }
    for (const str of strs) {
      doSplit(str)
    }
  • rgx

     
    const rgx = /(?<tag>[a-z]+):(.*)?/
    function doRgx(str) {
      const res = str.match(rgx)
      if (!res) {
        return null
      }
      return res.groups?.tag ?? null
    }
    for (const str of strs) {
      doRgx(str)
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    split
    rgx

    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_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Chrome 120 on Mac OS X 10.15.7
View result in a separate tab
Test name Executions per second
split 5962339.5 Ops/sec
rgx 2591170.5 Ops/sec