Ugrás a főmenüre.
Minden más 2008.11.24.

Miért instabilak a programok, miért fagynak le, miért lassú a gépem?

Általában a rossz memóriakezelés miatt. Megmutatom, hogy miért darál a gép vagy miért lesz gyorsabb egy újraindítás után. Szigorúan laikusoknak, a fejlesztők olvassanak valami mást (ne). Sőt, ez a bejegyzés egyben bevezető is egy "Amit (esetleg) nem tudtál az iPhone működéséről" cikkhez.
Miért instabilak a programok, miért fagynak le, miért lassú a gépem?

Alkalmazásaink sok memóriát használnak, rendszerint jóval többet, mint arra akárcsak a fejlesztőjük gondolt volna. Lehet, hogy 4 GB RAM soknak tűnik, de nem egy népszerű program játszva beleharap a gigabájtos tartományba, mi pedig általában több ilyen népszerű szoftvert futtatunk egyszerre. De sokszor elég egy böngésző is jó sok megnyitott füllel.

Daráló

Tehát memóriából sosem elég, ezért a fizikailag létező memória helyett szinte minden operációs rendszer ún. virtuális memóriát használ. Ennek többek között az a lényege, hogyha a fizikai memória elfogyni látszik, akkor a ritkán használt/legrégebben használt/statikus tartalmú memóriafoglalásokat kiírja a merevlemezre és csak akkor tölti vissza, ha ismét szükség van rá. A merevlemez persze sokkal-sokkal lassabb a memóriánál, így a visszatöltés is az.

Ennek legszembetűnőbb példája a következő: használjunk valamilyen sok memóriát zabáló alkalmazást (pl. Photoshop), aztán indítsunk el egy böngészőt és nézzünk meg jópár weboldalt. Ezzel jó eséllyel a Photoshop által elfoglalt rengeteg memóriát oprendszerünk kénytelen lesz kiírni a lemezre, hogy legyen hely a böngészőnek. Aztán csukjuk be a böngészőt és klikk vissza a Photoshopra. A válasz rendszerint őrült darálás lesz.

Szivárgás

További probléma, hogy sok alkalmazást nem túl jó minőségben fejlesztenek és nem a leghatékonyabban használják a memóriát. Ez még csak-csak elmegy, de a szivárgás (leak) már nem: nagyon könnyű olyan kódot írni, ami a felhasznált memóriatartományokat nem szabadítja fel, így folyamatosan használtként tartja (úgy, hogy gyakorlatilag nem is tud róla). Ezzel memóriánk "elszivárog".

Sajnos alig van olyan szoftver, ami ne szivárogna. A szivárgás által lekötött területek csak akkor szabadulnak fel, ha véglegesen bezárjuk a szivárogtató programot, de persze folyamatosan a háttérben futó dolgok is szivároghatnak, amiket az egyszerű felhasználó nem tud bezárni. Ezért van az, hogy egy újraindítás sok problémát megold, hiszen minden nulláról indul.

Fagyás

A fagyások túlnyomó többsége is memóriakezelési gondokból adódik. Általában akkor száll el egy program, ha olyan memóriaterületre hivatkozik, amire nem kellene: nem férhet hozzá biztonsági okok miatt vagy nem az van már ott, aminek kellene, satöbbi. Ez szinte minden esetben a fejlesztő hibája, nem gondolt olyan esetekre, amire pedig kellett volna.

Szerencsés és általános esetben a hibás memóriaterületre történő hivatkozást észleli az operációs rendszer és egy érthetetlen (a fejlesztő számára is haszontalan!) hibaüzenettel leállítja a programot, azaz "elszáll".

Rossz esetben pedig annyira sikerül összekavarni az operációs rendszer működését, hogy az is elszáll, azaz "lefagy a gép", jöhet a reset.

error-reboot-plz.jpg

1 hozzászólás

  1. idézem 2008.11.29. 00:21
    • boj
    Oké, instabilak...de MIKOR lesznek újra EC3/Amazon írások?

    Többek nevében is követelem:)
Új hozzászólás
A sortörések automatikusak. Csak az üzenet kitöltése kötelező, a többi mező opcionális. A megadott e-mail címet nem tesszük közzé. Engedélyezett HTML tagek: p, a, strong, em, blockquote, ul, ol, li, dl, dt, dd.

Legutolsó hozzászólások

Végre IKEA!: Ági: Heló bárkinek, aki idetéved! A weboldalunk domain-je - a kedvenc áruházunk ügyvédjének nyumására :) - megváltozott: Az új cím: is...

DJ PLAYER Blue Edition: Gábor: Ja, és természetesen megy iPad-en is, hiszen _minden_ iOS app megy iPad-en.

DJ PLAYER Blue Edition: Gábor: Bug report-okat itt fogadunk: http://djplayer.net/page/bug_report_fixes

DJ PLAYER Blue Edition: hohand: Hello!A dj player mukodik iPad-on is?Tegnap feltettem, wifi-n athuztam ra zeneket,de amikor ranyomtam egy zeneszamra,error-t dobott es valami is!...

Uzsidoboz LED!: zo via Google Reader: vicces dolog, csak nem értem mire való

iMect means internet, media and other cool things. We're a small company located in Hungary. There is a big footer on every page where you can discover what we do and what happens with us.

Az iMect jelentése: internet, média és egyéb király dolgok. Egy kis magyar cég vagyunk. Minden oldalon van egy nagy lábléc, ahol felfedezheted, hogy mivel foglalkozunk.