JSFiddle - React, Tailwind, and code Playground
by svtux
JavaScript
var testFlag = 0;
benchmark();
function benchmark(ex) {
if (testFlag) {
stopTest(true);
}
var m = 100;
var num = 10000;
// var ex = 10;//%
startTest();
var tt = new Array(num);
var kX = 100 / ex;
for (var i = 0; i < tt.length; i++) {
if (i % kX == 0) {
tt[i] = i;
} else {
tt[i] = '' + i;
}
}
var t1 = t2 = 0;
for (var k = 0; k < m; k++) {
var date = new Date();
testIfCondition(tt);
var dT = new Date() - date;
t1 += dT;
setBenchLastTest(dT);
date = new Date();
testTryCatch(tt);
dT = new Date() - date;
t2 += dT;
setBenchLastTest(dT);
setProgress(k + 1, m);
if (!testFlag) break;
}
info('Average time IF-ELSE: ' + t1 / m);
info('Average time TRY-CATCH: ' + t2 / m);
stopTest();
}
function testIfCondition(tt) {
for (var j = 0; j < tt.length; j++) {
if (typeof tt[j] == 'string') {
tt[j].toLowerCase();
}
}
}
function testTryCatch(tt) {
for (var j = 0; j < tt.length; j++) {
try {
tt[j].toLowerCase();
} catch(e) {
//
}
}
}
function setProgress(i, total) {
info('Прогресс выполнения тестов: ' + i + " / " + total);
info('================================');
}
function setBenchLastTest(t) {
info('Время выполнения последнего теста:' + t);
}
function startTest() {
testFlag = 1;
info('тест начат');
}
function stopTest(b) {
testFlag = 0;
if (b) {
info('тест прерван');
} else {
info('тест завершён');
}
}
function info(msg) {
console.log(msg);
}