regex-vs-loop (v4)

Revision 4 of this benchmark created on


Setup

var words = ["lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit","donec","convallis","elit","ut","lacinia","bibendum","augue","lorem","fermentum","mauris","in","vestibulum","mi","sapien","tempor","dolor","sed","sapien","dui","pharetra","et","ultricies","quis","egestas","vitae","diam","nulla","lobortis","quam","ut","nulla","mollis","rhoncus","molestie","ipsum","vestibulum","proin","condimentum","lacinia","felis","sit","amet","tincidunt","fusce","eu","suscipit","sem","proin","in","libero","vel","leo","eleifend","pretium","pellentesque","justo","orci","iaculis","ut","pharetra","ac","aliquet","accumsan","nisi","donec","tortor","leo","sodales","in","faucibus","nec","rhoncus","a","ipsum","fusce","non","fringilla","arcu","aenean","consequat","nisi","id","massa","sodales","ullamcorper","in","hac","habitasse","platea","dictumst","vivamus","accumsan","lacus","sit","amet","quam","vehicula","viverra","pellentesque","porttitor","sagittis","velit","eget","auctor","sed","sem","nulla","lobortis","ac","cursus","at","sollicitudin","eget","tellus","quisque","eu","diam","tellus","etiam","eu","nunc","erat","fusce","nec","nibh","quis","erat","consectetur","sollicitudin","in","sagittis","arcu","vitae","nibh","faucibus","et","dignissim","sem","gravida","nulla","facilisi","donec","id","nullam"];
    
    var matcher = new RegExp(words.join("|"), "ig");
    var map = {};
    
    words.forEach(function(word) {
      map[word] = 1;
    });
    
      function f1(str) {
          return str.match(matcher);
      }
      function f2(str) {
         var matches = []
         words.forEach(function(word) {
           if (~str.indexOf(word)) matches.push(word)
         });
         return matches;
      }
    
      function f3(str) {
         var matches = [];
         str = str.toLowerCase();
         words.forEach(function(word) {
           if (map[word]) matches.push(word)
         });
         return matches
      }

Test runner

Ready to run.

Testing in
TestOps/sec
Regexp
f1("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec convallis, elit ut lacinia bibendum, augue lorem fermentum mauris, in vestibulum mi sapien tempor dolor. Sed sapien dui, pharetra et ultricies quis, egestas vitae diam. Nulla lobortis quam ut nulla mollis rhoncus molestie ipsum vestibulum. Proin condimentum lacinia felis sit amet tincidunt. Fusce eu suscipit sem. Proin in libero vel leo eleifend pretium. Pellentesque justo orci, iaculis ut pharetra ac, aliquet accumsan nisi. Donec tortor leo, sodales in faucibus nec, rhoncus a ipsum. Fusce non fringilla arcu. Aenean consequat nisi id massa sodales ullamcorper. In hac habitasse platea dictumst. Vivamus accumsan lacus sit amet quam vehicula viverra. Pellentesque porttitor sagittis velit eget auctor. Sed sem nulla, lobortis ac cursus at, sollicitudin eget tellus. Quisque eu diam tellus. Etiam eu nunc erat. Fusce nec nibh quis erat consectetur sollicitudin. In sagittis arcu vitae nibh faucibus et dignissim sem gravida. Nulla facilisi. Donec id nullam.")
ready
loop
f2("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec convallis, elit ut lacinia bibendum, augue lorem fermentum mauris, in vestibulum mi sapien tempor dolor. Sed sapien dui, pharetra et ultricies quis, egestas vitae diam. Nulla lobortis quam ut nulla mollis rhoncus molestie ipsum vestibulum. Proin condimentum lacinia felis sit amet tincidunt. Fusce eu suscipit sem. Proin in libero vel leo eleifend pretium. Pellentesque justo orci, iaculis ut pharetra ac, aliquet accumsan nisi. Donec tortor leo, sodales in faucibus nec, rhoncus a ipsum. Fusce non fringilla arcu. Aenean consequat nisi id massa sodales ullamcorper. In hac habitasse platea dictumst. Vivamus accumsan lacus sit amet quam vehicula viverra. Pellentesque porttitor sagittis velit eget auctor. Sed sem nulla, lobortis ac cursus at, sollicitudin eget tellus. Quisque eu diam tellus. Etiam eu nunc erat. Fusce nec nibh quis erat consectetur sollicitudin. In sagittis arcu vitae nibh faucibus et dignissim sem gravida. Nulla facilisi. Donec id nullam.")
ready

Revisions

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