jsPerf.app is an online JavaScript performance benchmark test runner & jsperf.com mirror. It is a complete rewrite in homage to the once excellent jsperf.com now with hopefully a more modern & maintainable codebase.
jsperf.com URLs are mirrored at the same path, e.g:
https://jsperf.com/negative-modulo/2
Can be accessed at:
https://jsperf.app/negative-modulo/2
var html = document.body.innerHTML;
var map = {
"&": "&",
"'": "'",
'"': """,
"<": "<",
">": ">"
};
function replaceEntity(chr) {
return map[chr];
}
String.prototype.replaceAll = function(str1, str2, ignore) {
return this.replace(new RegExp(str1.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g, "\\$&"), (ignore ? "gi" : "g")), (typeof(str2) == "string") ? str2.replace(/\$/g, "$$$$") : str2);
};
String.prototype.htmlEncode = function() {
return this.replace(/&/g, '&').replace(/"/g, '"').replace(/'/g, ''').replace(/</g, '<').replace(/>/g, '>');
};
var re_amp = /&/g;
var re_squo = /'/g;
var re_dquo = /"/g;
var re_lt = /</g;
var re_gt = />/g;
function charsReplace(str) {
var result = '';
for (var i = 0, len = str.length; i < len; ++i) {
var c = str.charAt(i);
switch (c) {
case '&':
result += '&';
break;
case '"':
result += '"';
break;
case '\'':
result += ''';
break;
case '<':
result += '<';
break;
case '>':
result += '>';
break;
default:
result += c;
}
}
return result;
};
Ready to run.
Test | Ops/sec | |
---|---|---|
multiple replace() |
| ready |
single replace with map |
| ready |
single replace with switch |
| ready |
charsReplace |
| ready |
predefined regexp literals |
| ready |
string replaceAll method |
| ready |
replace chain on prototype |
| ready |
single replace with pre-defined function |
| ready |
You can edit these tests or add more tests to this page by appending /edit to the URL.