V tomto blogu prinášam ďalšie malé nano optimalizácie JavaScriptu, ktoré možno ani nikdy nevyužijete.
Ď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
Other posts from Peter Širka
- 2024-10-30JavaScript na serveri rýchlo a jednoducho so slovenským Total.js frameworkom
- 2024-02-18Ako lietať s long range dronom?
- 2024-02-09Recenzia drona DJI FPV
- 2024-02-07Recenzia drona DJI Avata
- 2023-01-06Ako spustiť Total.js framework?
- 2023-01-03Inštalácia Node.js + vysvetlenie použitia modulov
- 2022-05-26Základné informácie o Total.js Platforme
- 2021-01-15Je tu Total.js 4 - jeden z najlepších Node.js frameworkov
- 2020-02-12Total Avengers
- 2019-09-18JavaScript core pre Pie a Donut SVG grafy