A szemétgyűjtő a v8, illusztrált útmutató - devschacht - közepes
Oké, kezdjük.
Mi v8?
Mi a szemétgyűjtő?
A legfontosabb feladat a szemétgyűjtő az a képesség, hogy ellenőrizzék a memória használatára adott programot. Nyelvek, mint a C, általában kapcsolódik a program irányításához memória és szétosztja és visszavételi azt a műsor keretében. Az ECMAScript másrészt, nincs interface memória kezelése (igen, ez azt jelenti, nincs megfelelő API). Ez általában azt jelenti, hogy az összes jog a program irányítására memória ™ továbbított V8.
Mivel nem férnek hozzá végtelen mennyiségű memóriát, a munka a szemétgyűjtő, hogy meg kell, hogy menjen végig a célok, amelyek memóriát, és annak megállapítására, függetlenül attól, hogy halott. Azok, akik életben szabad elfelejteni, akik meghaltak eltávolítjuk, és a memóriája visszakerül a kupac.
Mi a kupac. Egy csomó - ez strukturálatlan régió, ahonnan az allokált memória tárgyakat. Distribution egy dinamikus, hiszen a méret / élettartam / objektumok száma nem ismert, így a kiosztás és felszabadítása memória alatt történik a program végrehajtása.
Ezért, ha megnézzük a versenyképes modellje, a sok munka közvetlenül a hívási verem, mivel a tárgyak jelennek meg egy köteg igényelnek memóriafoglalási. Ez a következőképpen néz ki:
Dead or Alive?
Alapvető annak ellenőrzésére, hogy a tárgy élő vagy halott, attól függően, hogy az ügyfél vagy a program végrehajtja a kódot, hogy elérjék. A legnagyobb elérhető cél, mint gondolnád, akkor valószínű, hogy objektum bejelentett gyökér körét.
Néhány C ++ kötések (vagy webes API az ügyfél) szintén része a gyökér, így közvetlenül hozzáférhet módszerekkel, például setInterval.
Mintegy elérhetőség is ilyen gondolatai: ha egy másik tárgy vagy a gyökér objektum képes lesz, hogy ez, és ha igen, akkor a memória szükséges az objektum tárolja.
Szóval, hogyan lehet eljutni a szemétgyűjtő? (Mondd! Mondd el!)
Abból a célból, szemétgyűjtő halom V8 két részre oszlik: a fiatalok és az idősek helyet. Amikor végez műveleteket igénylő memória kiosztás, a V8 osztja helyet az első részben. Ha továbbra is hozzá dolgokat együtt, akkor végül elfogy a memória, így a V8 fog futni razzia. Az újonnan létrehozott objektumok memóriát nagyon gyorsan, rövid és gyors gyűjtemény tisztítani rendszeresen (eltávolításában már halott tárgyak). Miután a tárgyak „túlélni”, néhány (2 egészen pontosan), takarítás ciklus, átkerülnek a régi helyet, a szemétgyűjtő feldolgozása egy külön hurok befejezésekor.
Régi tárgyak - átesettek több mint egy ciklus szemétgyűjtő, hogy van, hogy továbbra is hivatkozhat más tárgyakat, és meg kell maradnia a memóriában. Általában nem a fiatal, tárgyakat, de továbbra is utalás a régebbi tárgyakat. Nem kívánatos, hogy a keveredés a generációk, mivel a tisztítás kevésbé tiszta.
🆒 sources.js
Kövess minket naMediume, kontribyutte naGithabe, kommunikálni vgruppe távirat nézni vTvittereikanale távirat, hamarosan vezetni podcast. Ne vesszenek el.