String split by length

JavaScript performance comparison

Revision 16 of this test case created

Info

Add splitSlice2 method; spoiler, it's better.

Preparation code

<script type="text/javascript">

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),
      _offset
  ;

  for (var _i=0; _i<_size; _i++) {
    _offset = _i * len;
    _ret[_i] = str.substring(_offset, _offset + len);
  }

  return _ret;
}

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

</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
Regex w/ Short String
splitRegex(shortString, 2);
pending…
Slice w/ Short String
splitSlice(shortString, 2);
pending…
Slice2 w/ Short String
splitSlice2(shortString, 2);
pending…
Regex w/ Long String
splitRegex(longString, 2);
pending…
Slice w/ Long String
splitSlice(longString, 2);
pending…
Slice2 w/ Long String
splitSlice2(longString, 2);
pending…
Regex w/ Long String, Large Chunks
splitRegex(longString, 100);
pending…
Slice w/ Long String, Large Chunks
splitSlice(longString, 100);
pending…
Slice2 w/ Large String, Large Chunks
splitSlice2(longString, 100);
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