Prezentace: výkonný JavaScript
Nálepky:
Prezentace High Performance JavaScript (dostupná na SlideShare) ukazuje některé techniky ke zrychlení JavaScriptu, založené na znalosti interní implementace tohoto jazyka (Nunboxing, Punboxing, Garbage Collector, reprezentace objektů, JIT kompiler atd.)
A je dobré cokoliv optimalizovat na základě znalosti interní implementace jazyka? To všechny implementace javascriptu mají stejné vnitřnosti?
A maji vsecky prohlizece stejnou implementaci tohoto jazyka? Neprijde treba novy prohlizec (resp. nova verze nektereho z prohlizecu), s novou implementaci javascriptu?
Ano, někdy určitě. Uvědomte si, že často jde např. o znalost, že určitá platforma provádí určitou operaci velice pomalu (tj. vlastnost plynoucí z její interní implementace jazyka). Tím pádem bude optimalizace spočívat v tom, že se této operaci budu chtít vyhnout a zároveň vůbec nebo téměř nezpomalím provádění kódu na jiných platformách.
Pro reálné příklady si koneckonců stačí prohlédnout zdrojový kód nějakého client-side JS frameworku a mrknout se například sem: http://blogs.msdn.com/b/ie/archive/2006/11/16/ie-javascript-performance-recommendations-part-2-javascript-code-inefficiencies.aspx
Dovolil bych si pouze poznamenat, že uvedená prezentace není prakticky vůbec o tom, jak psát rychlejší JS kód, ale spíš o tom, jaké techniky používají JS enginy pro rychlejší provádění JS kódu.
Každopádně, díky za odkaz – i tak je to zajímavý materiál..
Přijde mi smutné, kolik úsilí se věnuje optimalizacím plynoucím z dynamického typování JavaScriptu. Řada vývojářů by se přitom spokojila i se statickým typováním, část z nich tak JavaScript už stejně používá a části by zákaz dynamického typování dokonce ulevil.
Na tom něco je. Koneckonců, jednou z hlavních vlastností zamítnuté specifikace ECMAScript 4 bylo právě zavedení statického typování (i když ve volitelné podobě).