Rychlý benchmark

Dejme tomu, že potřebuji ověřit, zda daná metoda/funkce je rychlejší než ostatní. Udělám benchmark

Hojně se používá zápis a*1, tzn. pokud jsi děvčetem, budeš děvče, jinak nula.

Jak otestujete, zda je rychlejší parseInt(„18“) anebo „18“*1

Vytvořme si funkci pro testování metod.

function bench(callback) {
var start = new Date();
for ( var i = 0; i < 1000000; i++) {
callback();
}
var end = new Date();
console.log(end.getTime() - start.getTime());
}

Býti hnidopichem, testuji zda je callback opravdu funkce, avšak museli bychom býti paranoidní, muset testovati, však?

Milión iterací neznamená, že jsem bohatý programátor, ale že, víc iterací bude mít statisticky lepší poměrnou hodnotu „by woko“

Zkusíme tedy naše řetězce převádět na číslam. Mějme testovací vzorek n a metody parseInt, parseFloat, `*1`

var n = "18";
var a=function(){
parseInt(n);
};
var b=function(){
parseFloat(n);
};
var c=function(){
n*1;
};

Zjistíte zajimavé výsledky, milión nahraďte proměnnou a dosazujte střízlivé hodnoty.

Zápis *1 mi příjde výkonově velmi dobře a je srovnatelný s ostatními.
var d = function(){n*1+1;}

Hodil by se Interaktivní test, možná ho sem přidám, je to velmi ožehavé téma, co se optimalizací kódu týče.