Peter Širka
Peter Širka

Brutal Developer

Ďalšie malé optimalizácie v JavaScripte

Ďalšie malé optimalizácie v JavaScripte

V tomto blogu sa pozrieme ešte na ďalšie nano-micro optimalizácie JavaScriptového kódu, ktoré môžu trochu pomôcť v špecifických prípadoch.

Triedenie array

V prípade, že triedite polia na client-side alebo server-side node.js, tak v niektorých prípadoch sa oplatí triediť pole tak, že string hodnoty jednoducho skrátime. Nižšie uvedenú optimalizáciu používam v Total.js frameworku.

Pri UTF8 je vyššie uvedené riešenie dosť rýchle, nakoľko v JS nevieme triediť UTF8 znaky (rozumej napr. SK diakritiku) a tak jednoduché riešenie je odstrániť diakritiku zo stringu a vytriediť ho tak ako je (áno, nebude to presné, ale stále lepšie ako drôtom do oka). Čo sa týka ešte triedenia v JS, tak Total.js framework má implementovaný quicksort algoritmus, ktorý je rýchlejší ako vstavaný Array.sort() - zatiaľ som nezaznamenal žiadne problémy.

Null a Undefined

Toto porovnanie používam často v podmienkach a krásne Vám vie nahradiť túto konštrukciu:

if (value !== undefined && value !== null)

Regulárne výrazy

Ak používate string.match() len na overenie, či string obsahuje Vami hľadanú hodnotu alebo nie, tak z hľadiska performance je oveľa lepšie použiť regexp.test(string) ako string.match().

Pri regexp.test() a použití globalneho modifikátoru /g si dávajte veľký pozor:

Mne sa bohužiaľ takéto niečo stalo a chyba sa hľadala veľmi ťažko, preto o tom teraz píšem. Takže dávajte si na to pozor. Na záver regulárnych výrazov pridávam ešte jeden tip a to: cache-ujte regulárne výrazy, zvýšite performance:

Poradie v porovnávaní

Správne poradie v podmienkach dokáže tiež zvýšiť performance Vašej aplikácie, príklad:

Moje doporučenie pre porovnávanie:

  • v podmienkach ak je to možné, začíname vždy jednoduchými typmi: boolean, integer, string
  • následne riešiť menej náročné porovnania - až po tie náročnejšie