startswith (v4)

Revision 4 of this benchmark created by Steve Hollasch on


Setup

var s1 = "okodjdkdjdsllsdkddkdkdkkdkdloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremlorem";
  var s2 = "odjdkdjdsllsdkddkdkdkkdkdloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremok";
  var s3 = "odjdkdjdsllsdkddkdkdkkdkdloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremloremlorem";
  
  function startsWith(s,starter) {
    // BUG: Will crash if s.length is less than starter.length.
    for (var i = 0, cur_c; i < starter.length; i++) {
      cur_c = starter[i];
      if (s[i] !== starter[i]) {
        return false;
      }
    }
    return true;
  }
  
  function startsWith2(str, prefix) {
      if (str.length < prefix.length)
          return false;
      for (var i = prefix.length - 1; (i >= 0) && (str[i] === prefix[i]); --i)
          continue;
      return i < 0;
  }
  
  function startsWith3(str, prefix) {
      var length = prefix.length;
      if (str.length < length)
          return false;
      for (var i = 0; (i < length) && (str[i] === prefix[i]); ++i)
          continue;
      return i === length;
  }

Test runner

Ready to run.

Testing in
TestOps/sec
indexOf
var a = (s1.indexOf('ok'));
var b = (s2.indexOf('ok'));
var c = (s3.indexOf('ok'));
ready
custom
var a = (startsWith(s1,'ok'));
var b = (startsWith(s2,'ok'))
var c = (startsWith(s3,'ok'));
ready
lastIndexOf
var a = (s1.lastIndexOf('ok',0));
var b = (s2.lastIndexOf('ok',0));
var c = (s3.lastIndexOf('ok',0));
ready
startsWith2
var a = startsWith2(s1, 'ok');
var b = startsWith2(s2, 'ok');
var c = startsWith2(s3, 'ok');
ready
startsWith3
var a = startsWith3(s1, 'ok');
var b = startsWith3(s2, 'ok');
var c = startsWith3(s3, 'ok');
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.