Javaslatok sebesség azaz JScript, a harmadik rész a problémás területek js
Javaslatok sebesség IE + JScript részében három: baj foltok JS
Helló megint, Peter Gourevitch (Peter Gurevich), kezelője az optimalizálás IE. Kaptunk egy csomó visszajelzést az első cikket a sebesség IE + JScript (1. rész 2. (fordítás)), és nem tudok várni, hogy megtudja, mit gondol a harmadik rész.
Ezúttal nézzük a konkrét problémák kapcsolódó lezárások és a PFSZ. Rövidzárlat elkerülése érdekében, hogy a maximumot, ha ez lehetséges.
Leggyakrabban használt hibaként eseménykezelőkkel
Ez úgy történik, hogy bezárják a hatálya funkció, hogy végre egy új funkció, amely akkor lesz végrehajtva, ha hívja a megfelelő eseménykezelő. A probléma ezzel a megközelítéssel - ciklikus közötti kapcsolatok változó és lezárása szinte láthatatlan. A további terhelést a memória a létesítményben ilyen létesítmények okoz többletköltséget szemétgyűjtő lehet többletmunkát IE vagy más böngészők. Egy jó példa az API adatok vételére a távoli csomópont.
Sőt, minden egyes alkalommal, amikor a funkciót nevezik startDownload. memóriában kerülnek kiosztásra a helyét az új tárgy és annak állapotát.
Ne használja a tulajdonság hozzáférési metódusok
technikát gyakran használják OOP használatával jár módszerek elérheti a tulajdonságokat. Például, abban a formában [kap / set] _PropertyName (vagy mások zavimosti kódolási stílus). Kezdetben ez egy helyi változó osztály két módszer az olvasás és írás a változó. Ezek a módszerek gyakran használják, hogy ellenőrizzék a láthatóságát osztály tagjai - de úgy tűnik, minden JScript. Ezen kívül a legtöbb objektum-orientált nyelvek optimalizálni ezeket a tulajdonságokat, hogy közvetlen hozzáférést biztosít a változó fordítási időben, ami lehetetlen JScript egy értelmezett nyelv.
Például a minta tárgy Car. használatával a hozzáférés:
Ez a példa tökéletes szempontjából OOP, de szörnyű JScript. Elterelései hozzáférést biztosít a helyi tagjai az osztály nagyon rossz hatással van a teljesítményére a kérelmet. Amíg nem kell ellenőrzés a bejövő értékek minden esetben ez nem szükséges, hogy extra kód: meg kell ennyire egyértelmű.
Ha megpróbálja átírni a fenti példában, akkor kap egy jó gyakorlat, hogy távolítsa el mindent, ami lehetséges.
Mi távolítani két további speciális tulajdonságait egy tárgy, egy pár funkciót, felesleges munka a befogadási és beállítási értékeket, és néhány nevet az adott környezetben. Röviden, próbálja elkerülni kitérőt.
Egy teljes példa, mi is hozzá a prototípusok. Tartsuk szem előtt, hogy a munka egy prototípus valóban nem hatékony, mint az első osztályú tagja a keresési végzett esetekben eredetileg egy objektumot, majd a prototípus. Mindez meggyőződhetünk arról, hogy például a lassabb. Ha létrehoz több ezer példányban az objektumot, majd prototípusok igazán hatékony. Ezt úgy érjük el, csökkenti a méretét az egyes objektumok, mint kiegészítő funkciók kerülnek minden egyes létrehozott példányt. Sőt, az objektum inicializálása gyorsabb lehet, mert nem igényel minden egyes alkalommal a beállítás az összes funkció. Hogy teljes legyen a következő egy teljes példa. Házi, meg kell találnia egy helyet, ahol a gépet a prototípus részesül egy lassú autó.
Ez minden harmadik rész, köszönöm.
Peter Gurevich, programvezető
Justin Rogers, Szoftverfejlesztés mérnök