Rozhodol som sa spísať niekoľko tipov pre lepšiu optimalizáciu JavaScriptového kódu, tieto tipy môžete využiť či už na client-side alebo server-side v Node.js.
Opakovanie je matka múdrosti a veľa programátorov zabúda na to, že pri cykloch sa vždy (každým loopom) musí zistiť dĺžka poľa, čo vedie k zníženiu performance a zaťaženiu CPU.
Priznám sa, že ešte u nikoho som podobnú optimalizáciu nevidel a dovolím si tvrdiť, že práve podobné optimalizácie vedia zvýšiť performance a znížiť zaťaženie CPU + RAM. V ukážke je znázornený Total.js (Node.js) controller.
Podobný zápis môžete aplikovať aj na Array (polia).
Tento tip naväzuje na tip č.2 s tým, že priraďovanie hodnôt je oveľa rýchlejšie ako vytváranie objektov s následným priradením hodnoty. Podobnú optimalizáciu určite využijete aj v Express.js alebo inom podobnom Node.js frameworku.
Metóda SUCCESS()
v Total.js používa rovnakú optimalizáciu.
Ak áno, mám pre Vás skvelý tip, ktorý Vám dokáže zvýšiť performance. Kľúčové slovo delete
je veľmi nápomocné, ale je aj veľmi pomalé. Niekedy proste stačí priradiť hodnotu undefined
do nežiadúcej property a výsledok môžete mať rovnaký ako za pomoci delete
.
Sú prípady, kedy nepotrebujete absolútne presný čas, ale stačí Vám rozdiel +/- 1 minúta. V Total.js to riešim cez property F.datetime
ktorá je aktualizovaná každú minútu o aktuálny dátum a čas. Takže ak nepoužívate Total.js a robíte s časom, ktorý nepotrebujete mať na sekundu presný, tak môžete použiť nasledujúci tip na zvýšenie performance:
Metódy string.indexOf()
a string.lastIndexOf()
sú rýchlejšie ako regulárny výraz a doporučujem ich použiť pre jednoduché vyhľadávacie operácie. Taktiež je dobré rozlišovať použitie indexOf()
a lastIndexOf()
, pretože tu viete získať ešte lepšiu performance, stačí sa zamyslieť, kde najčastejšie sa môže vyskytovať Vami hľadaná fráza - či na začiatku alebo na konci.
Tu nebude nič lepšie ako odkaz na tento článok: https://top.fse.guru/nodejs-a-quick-optimization-advice-7353b820c92e. Chcem len pripomenúť, že táto optimalizácia sa týka len V8.
Iba v rýchlosti pripomeniem, že function.call()
je rýchlejšie ako function.apply()
a obidve volania sú niekoľko násobne pomalšie, ako volanie funkcie bez zmeny contextu.