Prinášam Vám pár tipov ako lepšie optimalizovať JavaScriptový kód, pomocou ktorého ušetríte trochu CPU a RAM.
Pár tipov ako lepšie optimalizovať JavaScriptový kód
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.
1. optimalizácia array (polí)
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.
2. Cacheovanie objektov
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).
3. Priraďovanie hodnôt je rýchlejšie ako vytváranie objektov
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.
4. Používate "delete" pred "JSON.stringify()"?
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
.
5. Cacheovanie dátumu tiež pomáha
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:
6. "string.indexOf()" a "string.lastIndexOf()" vs reguárny výraz
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.
7. Menšie funkcie = lepšia performance
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.
8. "function.call" vs "function.apply"
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.
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