Js StartWith Prototype (v8)

Revision 8 of this benchmark created by Jim Buck on


Description

string StartWith function to test option in http://stackoverflow.com/questions/646628/javascript-startswith and http://jsperf.com/string-startswith/5

with long string

Preparation HTML

<script>

  function startsWithCharAt(string, pattern) {
    for (var i = 0, length = pattern.length; i < length; i += 1) {
      if (pattern.charAt(i) !== string.charAt(i)) return false;
    }
    return true;
  }
  function startsWithArray(string, pattern) {
    for (var i = 0, length = pattern.length; i < length; i += 1) {
      if (pattern[i] !== string[i]) return false;
    }
    return true;
  }

 var longString1 = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam imperdiet feugiat bibendum. In in mi odio. Donec sed urna massa, sed fermentum risus. Proin non erat orci. Ut at mauris eget diam mollis tristique. Praesent ornare, dolor ut consectetur tempor, diam dolor luctus metus, eget pharetra mauris nulla id mauris. Phasellus id arcu ut ipsum pretium vulputate sit amet nec metus. Ut lacinia ante dignissim mauris vehicula id placerat diam ornare. Quisque ut eros eget lectus suscipit blandit quis nec ligula. Nulla hendrerit pulvinar leo, sit amet dictum mauris fermentum et. Curabitur vitae consequat purus. Phasellus odio orci, viverra a interdum sit amet, placerat sit amet augue. Vestibulum justo orci, feugiat vitae imperdiet non, molestie ac ante. Praesent in enim est, eget placerat tellus. Suspendisse augue nibh, placerat non pellentesque id, pellentesque sit amet nibh. Mauris ut mi non libero consectetur fermentum. Nunc gravida lectus libero. Pellentesque vel eros et diam fermentum tristique. Proin accumsan sagittis sagittis. Duis elementum velit lectus. Cras mollis enim nec orci iaculis in consequat augue rutrum. Aenean at consectetur arcu. Fusce consequat mi fermentum velit congue consequat ac a elit. Phasellus pulvinar libero sit amet ipsum commodo tempor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas faucibus eleifend est, non blandit lectus placerat ac. Cras vel fermentum magna. Nulla facilisi. Praesent vulputate lorem quis massa pulvinar interdum. Fusce mollis nisi vel mauris congue congue rhoncus arcu aliquam. Pellentesque nisl tellus, tristique at porttitor malesuada, aliquam eget enim. Donec malesuada pharetra sapien eu lobortis. Morbi tempus bibendum mi sit amet ornare. Nulla egestas, risus at feugiat sagittis, ligula odio laoreet urna, sed cursus orci turpis quis tortor. Fusce consequat ante vel nulla tempor eget consectetur urna fringilla. Donec cursus lorem at eros tempus laoreet.';

 var longString2 = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam imperdiet feugiat bibendum. In in mi odio. Donec sed urna massa, sed fermentum risus. Proin non erat orci. Ut at mauris eget diam mollis tristique. Praesent ornare, dolor ut consectetur tempor, diam dolor luctus metus, eget pharetra mauris nulla id mauris. Phasellus id arcu ut ipsum pretium vulputate sit amet nec metus. Ut lacinia ante dignissim mauris vehicula id placerat diam ornare. Quisque ut eros eget lectus suscipit blandit quis nec ligula. Nulla hendrerit pulvinar leo, sit amet dictum mauris fermentum et. Curabitur vitae consequat purus. Phasellus odio orci, viverra a interdum sit amet, placerat sit amet augue. Vestibulum justo orci, feugiat vitae imperdiet non, molestie ac ante. Praesent in enim est, eget placerat tellus. Suspendisse augue nibh, placerat non pellentesque id, pellentesque sit amet nibh. Mauris ut mi non libero consectetur fermentum. Nunc gravida lectus libero. Pellentesque vel eros et diam fermentum tristique. Proin accumsan sagittis sagittis. Duis elementum velit lectus. Cras mollis enim nec orci iaculis in consequat augue rutrum. Aenean at consectetur arcu. Fusce consequat mi fermentum velit congue consequat ac a elit. Phasellus pulvinar libero sit amet ipsum commodo tempor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas faucibus eleifend est, non blandit lectus placerat ac. Cras vel fermentum magna. Nulla facilisi. Praesent vulputate lorem quis massa pulvinar interdum. Fusce mollis nisi vel mauris congue congue rhoncus arcu aliquam. Pellentesque nisl tellus, tristique at porttitor malesuada, aliquam eget enim. Donec malesuada pharetra sapien eu lobortis. Morbi tempus bibendum mi sit amet ornare. Nulla egestas, risus at feugiat sagittis, ligula odio laoreet urna, sed cursus orci turpis quis tortor. Fusce consequat ante vel nulla tempor eget consectetur urna fringilla. Donec cursus lorem at eros tempus';

</script>

Test runner

Ready to run.

Testing in
TestOps/sec
IndexOf
longString1.indexOf(longString2) === 0;
ready
Slice
longString1.slice(0, longString2.length) === longString2;
ready
slice negative
longString1.slice(-longString2.length) === longString2;
ready
substring
longString1.substring(0, longString2.length) === longString2
ready
startsWithCharAt
 startsWithCharAt(longString1, longString2);
ready
startsWithArray
 startsWithArray(longString1, longString2);
ready
lastIndexOf
longString1.lastIndexOf(longString2, 0) === 0
ready
Native startsWith
longString1.startsWith(longString2)
ready

Revisions

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

  • Revision 1: published by Alexandre on
  • Revision 2: published on
  • Revision 3: published by Michael Fitzgerald on
  • Revision 5: published by Michael Fitzgerald on
  • Revision 6: published on
  • Revision 7: published by Doug S on
  • Revision 8: published by Jim Buck on