Autor Zpráva
Sylar
Profil
Zdravím,

přemýšlím jak zoptimalizovat jeden delší js kód a narazil jsem na dva články - http://www.peachpit.com/articles/article.aspx?p=31567&seqNum=5, http://www.peachpit.com/articles/article.aspx?p=31567&seqNum=6 - kde je poměrně dlouhý a zajímavý seznam úprav, které by měly zrychlit a zefektivnit chod JS.

Máte s optimalizací JS zkušenosti? Nějaké osobní vyzkoušené tipy?
Než se pustím do refaktoringu, zajímal by mne váš názor, speciálně na použití lokálních vs. globálních proměnných (co článek (nemyslím výše uvedené), to jiný názor), pak je také zajímavé doporučení použití switche a do-while namísto if-else resp. foru, v případech kde je to možné.

Příklad - globalní vs. lokální proměnné - co je rychlejší?
var aplikace = {

promenna = 0,
promenna_2 = [],

// funkce s lokálními
funkce: function(par, par2) {
var promen = this.promenna,
      promen_2 = this.promenna_2;

promen = par;
promen_2 = par2;

// .. další operace s promen a promen_2

this.promenna = promen;
this.promenna_2 = promen2;

},

// funkce s globálními
funkce2: function(par, par2) {

this.promenna = par;
this.promenna_2 = par2;

// další operace s this.promenna a this.promenna_2

}

}
pcmanik
Profil
Sylar:
Jedno zásadne pravidlo optimalízacie, optimalizovať až keď to prinesie úžitok a nehnať sa za microsekundami.
Skôr nám daj kód ktorý sa ti zdá pomalý.
Na testovanie rýchlostí môžes využiť jsperf.

A lokálne premenné su vždy rýchlejšie nakoľko sa nemusí prechádzať celé scope.
juriad
Profil
Sylar:
Máš problém s rychlostí?
Pokud ne, nesnaž se jakkoli optimalizovat; piš čitelný kód, který bude na první pohled snadno pochopitelný.
Pokud ano, zjisti si, kde skript tráví nejvíce času a to místo můžeš optimalizovat; obvykle přepsáním algoritmu / použitím jiných funkcí než změnou sytaxe jazyka.
sylar
Profil *
pcmanik, juriad:
cely kod bohuzel poskytnout nemohu, jedna se o aplikaci s cca 2500 radek, coz neni nic velkeho, ale pracuje se s pomerne velkymi daty, ktere probihaji cykly, proto se zsjimam o optimalizaci ikdyz vyraznejsi problemy s rychlosti ZATIM nejsou.

strukuta aplikace je v podstate takova jakou uvadim v prikladu.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: