Példa memóriaszivárgásra lezárás miatt - kijavított kód
Kommentár
Ez az oldal az előző oldal kijavított változata, azaz nem jön létre memóriaszivárgás.
A Yahoo ingyenes Yahoo! UI Library (YUI) osztálykönyvtárát használja az oldal.
A legtöbb kliens oldali osztálykönyvtár rendelkezik olyan segéd objektumokkal ill. funkciókkal, amelyek megkönnyítik az
eseményvezérelt programozást. A YUI YAHOO.util.Event komponense
például böngészőfüggetlen eseménykezelést szolgáltat.
A proramozónak elég megtanulnia a YUI esemény komponensének (YAHOO.util.Event) API-ját,
és nem kell többé törődnie az inkompatibilitással. Ezen felül a YUI esemény komponense gondoskodik helyettünk arról is,
hogy az általunk regisztrált eseménykezelő függvényekre ne maradjon referencia. Egyszóval nem jöhet létre memóriaszivárgás.
Ezt az oldalat az Internet Explorer 6-os verziójával teszteltem. Az oldalat egymás után rövid időközönként újratöltöttem.
A képen a böngésző memóriafoglalásának alakulása látható (a memóriafoglalást az ingyenes Process Explorer for Windows-al monitoroztattam).
Az oldal többszöri újratöltése ellenére a böngésző memóriafoglalása nem nőtt, vagyis az oldal nem szivárogtat memóriát.
Megjegyzés: A memóriahasználat idődiagramján jól látni, hogy a böngésző memóriafogyasztása az oldalról való elnavigálás után
sem csökkent le a kezdeti (kb. 10,2 MB) értékre. Ez ne tévesszen meg senkit sem, csupán arról van szó, hogy a böngésző bufferolta a termetes
osztálykönyvtár fájlait. Következő alkalommal már nem fogja újból letölteni az osztálykönyvtár JS állományait.
Lenne még egy megjegyzésem a használt kliens oldali osztálykönyvtárral kapcsolatban. A Yahoo! UI Library nem éppen kis méretéről híres.
A böngésző memóriafogyasztása jócskán több, mintha semmilyen osztálykönyvtár sem használtunk volna.
Mielőtt úgy döntünk, hogy kliens oldali osztálykönyvtárat fogunk használni, érdemes fontolóra venni a lehetséges
teljesítménycsökkenést. Sok kliens oldali osztálykönyvtár létezik. Vannak egészen kis méretuek, és egészen tekintélyes méretüek.
Azt kell mérlegelnünk, hogy mire akarjuk használni az osztálykönyvtárat, nehogy feleslegesen túlméretezett osztálykönyvtárat használjunk.
Nyilvánvalóan egy olyan kis web laphoz, mint ez is, nem feltétlenül szükséges osztálykönyvtárat használni, mert a web lap feleslegesen túl
sok ideig töltődne le, és lasabban is müködne. Az osztálykönyvtárak a programozók munkáját hivatottak megkönnyíteni, de nem szabad elfelejteni,
hogy bármelyik osztálykönyvtárat is választjuk, a web oldal futási teljesítménye minden esetben lassabb lesz.
Megjegyzés: A memóriahasználat idődiagramján jól látni, hogy a böngésző memóriafogyasztása az oldalról való elnavigálás után sem csökkent le a kezdeti (kb. 10,2 MB) értékre. Ez ne tévesszen meg senkit sem, csupán arról van szó, hogy a böngésző bufferolta a termetes osztálykönyvtár fájlait. Következő alkalommal már nem fogja újból letölteni az osztálykönyvtár JS állományait.
Lenne még egy megjegyzésem a használt kliens oldali osztálykönyvtárral kapcsolatban. A Yahoo! UI Library nem éppen kis méretéről híres. A böngésző memóriafogyasztása jócskán több, mintha semmilyen osztálykönyvtár sem használtunk volna. Mielőtt úgy döntünk, hogy kliens oldali osztálykönyvtárat fogunk használni, érdemes fontolóra venni a lehetséges teljesítménycsökkenést. Sok kliens oldali osztálykönyvtár létezik. Vannak egészen kis méretuek, és egészen tekintélyes méretüek. Azt kell mérlegelnünk, hogy mire akarjuk használni az osztálykönyvtárat, nehogy feleslegesen túlméretezett osztálykönyvtárat használjunk. Nyilvánvalóan egy olyan kis web laphoz, mint ez is, nem feltétlenül szükséges osztálykönyvtárat használni, mert a web lap feleslegesen túl sok ideig töltődne le, és lasabban is müködne. Az osztálykönyvtárak a programozók munkáját hivatottak megkönnyíteni, de nem szabad elfelejteni, hogy bármelyik osztálykönyvtárat is választjuk, a web oldal futási teljesítménye minden esetben lassabb lesz.