String Ocurrence split vs match

JavaScript performance comparison

Revision 2 of this test case created by

Preparation code


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

};
</script>

Test runner

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

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
.split()
return theString.split("is").length - 1;
pending…
.match()
return (theString.match(/is/g) || []).length;
pending…
PLUS: RegExp()
var regExp = new RegExp("is", "gi");
return theString.match(regExp) ? theString.match(regExp).length : 0;
pending…
occurrences
function occurrences(string, subString, allowOverlapping) {

  string += "";
  subString += "";
  if (subString.length <= 0) return string.length + 1;

  var n = 0,
    pos = 0;
  var step = (allowOverlapping) ? (1) : (subString.length);

  while (true) {
    pos = string.indexOf(subString, pos);
    if (pos >= 0) {
      n++;
      pos += step;
    } else break;
  }
  return (n);
}
return occurrences(theString, "is", false)
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.

0 Comments