EndsWith (stackoverflow)

JavaScript performance comparison

Revision 3 of this test case created

Info

Test for String.prototype.endsWith

Preparation code

<script>
  String.prototype.endsWithFast = function(suffix) {
    return this.indexOf(suffix, this.length - suffix.length) !== -1;
  };

  String.prototype.endsWithSlow = function(value) {
    var s = this.toLowerCase();
    var v = value.toLowerCase();
    return (s.match(v + "$") == v);
  };

  String.prototype.endsWithSkeet = function(str) {
    var lastIndex = this.lastIndexOf(str);
    return (lastIndex != -1) && (lastIndex + str.length == this.length);
  }

  var data = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed id dolor ligula, sollicitudin accumsan neque. Sed a rhoncus leo. Nulla vulputate tortor sed mauris pharetra eleifend. Mauris eget libero massa, nec laoreet quam. Integer sagittis mi vel nisl tincidunt at gravida lectus fermentum. Proin varius massa sit amet sapien blandit sit amet pellentesque ipsum aliquet. Aliquam tincidunt hendrerit turpis id molestie. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Fusce tincidunt congue sapien quis rhoncus. Suspendisse vulputate scelerisque tristique. Ut laoreet porttitor ante. Duis ut arcu ut justo semper lacinia. Sed fringilla erat nec dui posuere pretium laoreet lorem mollis. Nullam convallis, nunc sit amet hendrerit dapibus, lacus mauris pretium odio, vitae venenatis nulla ligula at ipsum. Pellentesque id iaculis purus. Ut euismod, arcu lobortis eleifend porttitor, nunc neque rhoncus lectus, vel ultrices quam tortor ac elit. Aenean eu risus eros. Phasellus at ante metus. Sed magna neque, consectetur eu vulputate quis, sagittis sed ligula. Etiam facilisis ornare tortor quis dignissim. Fusce rutrum nisi quis mauris consectetur non placerat sem aliquet. Nunc faucibus sollicitudin tortor in rutrum. Nam bibendum dapibus nulla porttitor iaculis. Quisque bibendum iaculis turpis vitae semper. Fusce blandit ipsum at diam mattis ultrices. Ut sit amet purus ac metus accumsan egestas. Aenean porttitor justo ut nibh placerat mattis. Quisque dictum, nunc eget interdum sagittis, sapien urna malesuada risus, eget faucibus elit quam eget dolor. Sed at eros vitae nibh tincidunt mattis. Suspendisse euismod risus magna, quis eleifend mi. Sed eget neque eget elit facilisis rhoncus. Maecenas sed nibh risus, id feugiat urna. Phasellus at suscipit augue. Sed rutrum quam sed urna vehicula lobortis. Donec lacinia lacinia est at ornare. Sed volutpat, lorem eu aliquam congue, tortor justo suscipit diam, sed lobortis ipsum nunc eget elit. Vestibulum euismod purus eu eros pellentesque id tempor nibh varius. Proin sed blandit diam. Sed pretium gravida nisl, sit amet aliquet est molestie luctus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin elit massa, iaculis in luctus vel, fringilla at quam. Nunc magna leo, elementum ac varius hendrerit, fermentum in lorem. Sed vulputate arcu velit, in pellentesque odio. Donec vel elit ipsum. Cras iaculis nunc sed urna tempor luctus. Morbi eget nulla a est elementum gravida a sed magna. Fusce et justo in diam venenatis gravida. Aenean congue sem eu nulla faucibus porta. Praesent vestibulum tempus molestie. Maecenas id tellus erat. Etiam fermentum ullamcorper libero et dictum. Integer sit amet pulvinar velit. Praesent eros lacus, eleifend nec rhoncus vitae, tincidunt vitae nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur nibh urna, dictum fringilla venenatis non, rutrum ut neque. Aliquam facilisis volutpat semper. Donec ultrices augue ultrices orci hendrerit sit amet tincidunt lacus congue. Donec quis augue mi. Nullam aliquam blandit vehicula. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In in dui sit amet felis interdum volutpat. In hac habitasse platea dictumst. Cras auctor eleifend elit a mollis. Maecenas a sapien nunc, quis ultricies nisl. Donec dictum rutrum nulla, vitae volutpat odio gravida blandit. Mauris semper egestas magna eget tristique. Fusce non erat enim, sed ultricies tellus. Sed egestas facilisis ante. Ut fringilla tellus sit amet mi sagittis dapibus vulputate eget massa. Fusce rutrum mauris id massa venenatis volutpat. Morbi non lacus in mi sodales condimentum a eu metus. Nullam vulputate elit sit amet mauris varius in sollicitudin mi tempor. Nam congue libero nec diam lobortis dapibus volutpat arcu auctor. Morbi lorem lectus, congue at sollicitudin quis, bibendum vel dolor. Donec mauris augue, venenatis eget sollicitudin vestibulum, euismod vel leo. Nam sit amet semper odio. In tincidunt leo vitae tellus posuere.";
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
Ends with SO
data.endsWithFast('posuere.');
pending…
Ends with InHouse
data.endsWithSlow('posuere.');
pending…
endsWithSkeet
data.endsWithSkeet('posuere.');
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment