Benchmark Repeat String
Compares pure JavaScript to a hacky one
by Nikolay Kolev
HTML
<div>
Mine = <span id="mine">...</span>
</div>
<div>
Theirs = <span id="theirs">...</span>
</div>
JavaScript
function mine(pattern, count) {
for (var result = '';;) {
if (count & 1) {
result += pattern;
}
if (count >>= 1) {
pattern += pattern;
} else {
return result;
}
}
}
function theirs(pattern, count) {
return new Array(count + 1).join(pattern);
}
function benchmark(id, fn) {
var pattern = '*';
var count = 1000;
var iterations = 100000;
var time = -Date.now();
var checksum = 0;
for (var i = 0; i < iterations; ++i) {
checksum += fn(pattern, count).length;
}
time += Date.now();
document.getElementById(id).innerText = time + ' ms, checksum = ' + checksum;
}
benchmark('mine', mine);
benchmark('theirs', theirs);