
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.
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.
Toto porovnanie používam často v podmienkach a krásne Vám vie nahradiť túto konštrukciu:
if (value !== undefined && value !== null)
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:
Správne poradie v podmienkach dokáže tiež zvýšiť performance Vašej aplikácie, príklad:
Moje doporučenie pre porovnávanie:
boolean, integer, string