WinMagazin

2012-08-13 10:00 swGuru Szólj hozzá!

Előző fejlesztői cikkemben a Windows Phone 8 kerneléről írtam felületesen, most egy kicsit jobban belemegyek a részletekbe. Jelen esetben a WP8 memóriakezeléséről lesz szó.

Azt már mindannyian tudjuk és talán észrevettük, hogy ha Windows alatt elindítunk egy programot, akkor bezárás és újra elindítás után sok esetben gyorsabban töltődik be. Hallottunk már talán a Prefetch technikáról, de hogyan is működik ez a gyakorlatban? Mi tölt be mit és mikor és miért?

Nos, aki nem hallott még róla, a Prefetch a Vistában jelent meg először, és azt a célt szolgálja, hogy gyorsabban töltődjenek be a programok. Körvonalakban ez úgy történik, hogy ugye ott van a gépünkben a sok RAM, amibe majd egyszer programok fognak töltődni (rákattintok a Word-re, stb). A Microsoftnál a programozók úgy látták, hogy jó ötlet lenne, ha a gyakran használt programok image-t (ez gyakorlatilag az exe meg egy kis adalék adat előző futtatásokból) előre betöltenék a memóriába, hiszen ha pont rákattint a felhasználó, akkor már nem kell a betöltéssel szórakozni, hiszen már be lett töltve. Erre finom algoritmusok ügyelnek, az operációs rendszer használata során a Windows statisztikát készít arról, hogy általánosságban milyen programokat használunk és mikor. Például ha azt tapasztalta, hogy reggel 8-kor rendszerint a felhasználó elindította az Excel-t, akkor 8 órára megpróbálja előtölteni az Excel képfájlját a memóriába… ebben a scheduler is segít neki. De lehet, hogy mégsem indítjuk el, de azért jó ha ott van, miért ne. Természetesen csak akkor végez előtöltést, ha éppen nincs használatban a gép (ez gyakorlatilag nem azt jelenti, hogy nem ül előtte senki és weben nézelődik, hanem hogy van szabad rendszer erőforrás az előtöltésre). Ez eddig szép és jó, töltsük tele az üres memóriát nyugodtan, hiszen eldobni a tartalmát pár nanoszekundumba kerül, viszont egy HDD-re várni az azonnali betöltéssel, az bizony ezerszeres nagyságrenddel lassabban történik (a HDD-k elérési ideje milliszekundum nagyságrendű).

Léteznek még úgynevezett prioritási szintek. Ez azt mondja meg a processzornak, hogy melyik alkalmazás „fontos”, tehát ha teszem azt az élő olimpia közvetítés nézése fontosabb, mint a defrag, akkor annak nagyobb prioritást adunk. Ezt Windows alatt nagyon szépen lehet látni, ha bekapcsoljuk a Priority megjelenítését Feladatkezelőben az oszlopbeállításoknál. A prioritások fontos szerepet játszanak az előtöltési algoritmusoknál, hiszen a magas prioritással rendelkező folyamatokat gyorsabban be kell tölteni, mint az alacsonyabbakkal rendelkezőket.

Oké, akkor nagyjából tudjuk, hogy mi az előtöltés. Viszont még mindig nem tudjuk, hogy hogyan lehet ezt tovább fokozni, de már nem sokáig.

A Windows Phone 8 ugye a Windows 8 kernelére épül, tehát hasonló gyorsítási algoritmusokat fog tartalmazni, mint az asztali társa. A Prefetch valószínűleg nem lesz bekapcsolva rajta, hiszen itt HDD helyett RAM lesz és ROM, ahonnan nagyon gyorsan lehet olvasni. Viszont lesz egy másik nagyon fontos algoritmus, melynek lényege a következő: ha egyszer valamit betöltöttünk, azt ne dobjuk ki a kukába egyből, amikor a felhasználó a bezárását kérte (pl ki-backel az alkalmazásból teljesen). Ehelyett csináljuk azt a sokkal gyorsabb eljárást, hogy a program képfájl memóriaterületét helyezzük készenléti üzemmódba, tehát gyakorlatilag megjelöljük felülírhatónak, de a gyakorlatban nem írjuk felül, hanem csak a képfájl bitjeire mutató hivatkozásokat töröljük. Amikor elindítjuk a következő programot, akkor az nem fogja egyből felülírni az előző programot, hanem a legelső még szűz memóriaterületre tölti be az alkalmazást, vagy pedig ha ilyen már nincs, akkor egy generációs algoritmussal megnézi, hogy melyik memóriaterületeket használtuk legrégebben, hiszen arra mostanában kevesebb szükségünk lesz mint az aktív futó alkalmazásnak. Ezzel azt nyertük, hogy ha a felhasználó újra elindítja az előzőleg futtatott alkalmazást, akkor a memóriakezelő megnézi, hogy a közelmúltban történt indításból maradtak-e ép memórialapok az alkalmazásból, amennyiben igen, akkor azokat aktívvá teszi ahelyett, hogy újra betöltené őket a háttértárról. Ügyes, nem?

Aztán itt van még az új memóriakombinációs technika, amely azt a célt hivatott szolgálni, hogy az OS a szabad idejében megkeresi a duplikált memóriatartalmakat, és kombinálja őket, így gyakorlatilag bizonyos tartalmak csak egyszeresen fognak szerepelni a memóriaterületen. Amikor pedig az azt használó alkalmazás újra kéri az erőforrást, akkor visszaadja neki a kombinált memóriatartalom egy másolatát, így biztosítva azt, hogy módosítás esetén a másik ugyanazt a mintát használó alkalmazás ne zavarodjon meg azáltal, hogy a memóriatartalom megváltozott. Ezzel is megtakaríthatunk pár megabájt memóriát.

Én úgy gondolom, nagyon jó ötlet volt betenni a Windows kernelt és memória-menedzsert a WP8 alá is, hiszen így megspóroltak egy csomó fejlesztési időt maguknak, nekünk pedig várakozási időt az új verzióra. Ezen kívül úgy gondolom, nagyon okos mérnökök dolgoznak a Microsoftnál, és több tíz éves tapasztalatukkal egy rendkívül stabil telefonos operációs rendszert fognak nekünk összehozni, ami mostanra ráadásul már futtatni tudja majd a natív alkalmazásokat is. Ki tudja, talán egy nap a Starcraft 2 is futni fog rajta.

 

Képek:


   
   

 

Jaskó László


A bejegyzés trackback címe:

https://winmagazin.blog.hu/api/trackback/id/tr984936279

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.

Ti írtátok

Címkék

1020 (18) 1520 (12) 920 (40) akció (12) alkalmazás (200) android (12) apple (16) áruház (16) ativ (13) beharangozó (88) bemutató (47) bing (12) fejlesztés (33) felmérés (17) frissítés (32) google (17) határmesgyék (12) hírek (20) homebrew (14) htc (22) ismertető (16) játék (36) képgaléria (18) készülék (146) kiállítás (11) kiegészítő (11) lányok az ablakban (18) lumia (149) microsoft (302) microsoft news (44) napiapp (14) neowin (17) nokia (198) office (22) paul thurrott (30) pletyka (50) reklám (31) sajtóközlemény (56) samsung (36) skydrive (14) skype (10) store (14) surface (33) szavazás (13) szivárogtatás (14) tablet (52) telefon (93) teszt (51) the verge (47) tippek és trükkök (11) update (18) vélemény (25) videó (126) windows (116) windows 8 (146) windows 8.1 (43) windows phone (402) windows phone 8 (19) wmpoweruser (110) wp7 (69) wp7.8 (65) wp8 (319) wp8.1 (63) wpcentral (127) xbox (47) xbox live (17) xbox one (21) zdnet (17) Címkefelhő

Twitter

NapiApp

Nincs megjeleníthető elem

süti beállítások módosítása