Performance Test
by prozoroff
HTML
<div id="results"></div>
<div id="items"></div>
CSS
#results {
font:icon;
font-size:11px;
}
.info {color:green;}
.error {color:red;}
JavaScript
var measure = (function() {
var iterations = 100000,
$results = $('#results');
var count = 0;
function log(msg) {
console.log(msg);
$results.append('<p class="info">' + ++count + '. ' + msg + '</p>');
}
function error(msg) {
console.error(msg);
$results.append('<p class="error">' + ++count + '. ' + msg + '</p>');
}
function measure(arg) {
if ($.isArray(arg)) {
measureMultiple(arg);
} else if ($.isFunction(arg)) {
measureOne(arg);
}
}
function measureMultiple(funcs) {
for (var i=0, len=funcs.length; i<len; ++i) {
measureOne(funcs[i]);
}
}
function measureOne(func) {
var start, end, duration;
try {
start = new Date().getTime();
for (var i = 0; i < iterations; ++i) {
func();
}
end = new Date().getTime();
duration = end - start;
log(func.name + ' completed in ' + duration + ' ms.');
} catch (err) {
error(func.name + ' ' + err);
}
}
return measure;
})();
$items = $('#items');
function func1() {
var a = (1272).toString(36)
return (a.length>1?"":" ") + a;
}
function func2() {
var d = 1272%94;
var h = (1272 - d)/94;
return ((h?String.fromCharCode(33 + h):" ") + String.fromCharCode(33 + d)) ;
}
measure([func1,func2]);