JS map filter vs loop a performance rubrika: Programování: JavaScript
7
xxar3s
položil/-a 2.1.2017
upravil/-a 2.1.2017
oplati sa pri velkom pocte poloziek pouzivat funkcie Array.map a Array.filter?
robil som si test https://jsperf.com/native-map-versus-array-looping
A map je o 94% pomalsi ako for (+ array.push).
A ked je tam este kombinacia filtru a mapu tak su tam 2x pomale higher order funkcie, ktore vykonavaju dva loopy a ten sa da nahradit jednym.
Napriklad .NET ma taketo veci optimalizovane pomocou lazy evaluation (pri pouziti spravnych kolekcii), takze namiesto dvoch loopov sa vykona len jeden. Myslel som ze aj JS sa uz v tejto oblasti posunul dopredu, ale vidim ze asi najlepsie bude pouzivat stare dobre cykly.
odkaz
8
Občan
odpověděl/-a 2.1.2017
Vyplatí, v bodech:
- Korektnost, tedy čitelnost kódu viz @Kit
- Když už potřebuji pracovat s tak velkým polem, že to je znát tak už většinou projekt obsahuje Lodash, či podobný "Swiss Knife", který vnitřně převádí Map na výkonější smyčky. Takže je dodržen první bod. (Podle mě, častý případ.)
- Setkal jsem se na projektech s programátory, kteří přepisovali horlivě mapy na while--, tam, kde bylo řádově desítky položek. Takový počet si dá dnešní stroj "k svačině". Tak velké pole, kde to stroj pocítí je tak vyjímečná situace, že se operativnímu řešení snad meze nekladou.
- Lazy možný je i v Javascriptu, ač ne nativně, ale patternem.
Pro zobrazení všech 3 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře