String split by length (v20)

Revision 20 of this benchmark created by Dan Tillberg on


Preparation HTML

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/3.3.1/lodash.min.js"></script>
<script>

function splitRegex(str, len) {
  var regex = new RegExp('.{1,' + len + '}', 'g');
  return str.match(regex);
}

function splitSlice(str, len) {
  var ret = [ ];
  for (var offset = 0, strLen = str.length; offset < strLen; offset += len) {
    ret.push(str.slice(offset, len + offset));
  }
  return ret;
}

// splitSlice2 ftw
// https://github.com/naomik
function splitSlice2(str, len) {
  var _size = Math.ceil(str.length/len),
      _ret  = new Array(_size)
  ;
  
  for (var _i=0; _i<_size; _i++) {
    _ret[_i] = str.substring(_i*len, len);
  }

  return _ret;
}

var shortString  = 'abcdefg';
var longString   = (new Array(500)).join('qwertyuiopasdfghjklzxcvbnm');

</script>

Test runner

Ready to run.

Testing in
TestOps/sec
Slice2 w/ Short String
splitSlice2(shortString, 2);
ready
Regex w/ Long String
splitRegex(longString, 2);
ready
Slice w/ Long String
splitSlice(longString, 2);
ready
Slice2 w/ Long String
splitSlice2(longString, 2);
ready
Regex w/ Long String, Large Chunks
splitRegex(longString, 100);
ready
Slice w/ Long String, Large Chunks
splitSlice(longString, 100);
ready
Slice2 w/ Large String, Large Chunks
splitSlice2(longString, 100);
ready
_.chunk with short string
_.chunk(shortString, 2);
ready
_.chunk with long string
_.chunk(longString, 100);
ready
Regex w/ Short String
splitRegex(shortString, 2);
ready
Slice w/ Short String
splitSlice(shortString, 2);
ready

Revisions

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