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