String split by length
JavaScript performance comparison
Preparation code
<script type="text/javascript">
function fasterSplit(str,len){
var ret=[],strlen=str.length,off=0
do {
ret.push(str.substr(off,len));
off+=len
} while (off<strlen)
return ret
}
splitRegex = function(str, len) {
var regex = new RegExp('[\\s\\S]{1,' + len + '}', 'g');
return str.match(regex);
}
var splitRegexCached = (function(){
var regexCache = {};
return( function(str, len) {
var regex = regexCache[len] || (regexCache[len] = new RegExp('[\\s\\S]{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;
}
function splitSubstr(str, len) {
var ret = [ ];
for (var offset = 0, strLen = str.length; offset < strLen; offset += len) {
ret.push(str.substr(offset, len));
}
return ret;
}
var simpleWhileSubstr = function (string, length) {
var array = [];
while (string.length > 0) {
array.push(string.slice(0, length));
string = string.substr(length);
}
return array;
};
var tinyString = (new Array(39)).join('abcdefghijklmnopqrstuvwxyz');
var shortString = (new Array(385)).join('abcdefghijklmnopqrstuvwxyz');
var mediumString = (new Array(3856)).join('abcdefghijklmnopqrstuvwxyz');
var longString = (new Array(38462)).join('abcdefghijklmnopqrstuvwxyz');
var spanArray = [6666, 2, 3339, 5, 1620, 13, 847, 22, 521, 46, 254, 88, 145];
var spanLength = spanArray.length;
var i = 0, span;
</script>
<script>
Benchmark.prototype.teardown = function() {
i = 0;
};
</script>
Test runner
Warning! For accurate results, please disable Firebug before running the tests. (Why?)
Java applet disabled.
| Test | Ops/sec | |
|---|---|---|
fasterSplit |
|
pending… |
Regex (Cached) |
|
pending… |
string.Substr |
|
pending… |
string.Slice |
|
pending… |
Simple While Substr |
|
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:
- Revision 1: published by James Brumond
- Revision 2: published by Jon-Carlos Rivera
- Revision 3: published by gildas
- Revision 5: published and last updated
- Revision 6: published
- Revision 7: published
- Revision 8: published by supsup
- Revision 9: published by Tgr
- Revision 10: published by Naomi Kyoto
0 comments