Java Garbage Collector (Català)

El Java Garbage Collector és un dels conceptes que més costa d’entendre a la gent quan comença a programar en Java. Com funciona el Java Garbage Collector exactament ?. Java divideix la memòria en dos blocs fonamentals, Young generation i Old generation.

java Garbage Collector

A la zona de Young Generation s’emmagatzemen els objectes que s’acaben de construir al programa. Aquesta zona de memòria es divideix en Eden Space, Survivor Space (S0 i S1)

java Garbage Collector Eden

La zona de Eden és la zona en la qual els objectes que acabem de construir s’emmagatzemen.

Eden Ús Java Garbage Collector

Quan el recol·lector d’escombraries passa, elimina tots els objectes que ja no disposin de referències a Eden Space i els supervivents els mou a l’Survivor Space.

Survivor Java Garbage Collector

el recol·lector d’escombraries tornarà a passar una altra vegada i si queda algun objecte supervivent en el Survivor Space S0 el mourà a l’Survivor S1

Survivor2 Java Garbage Collector

Després de diverses passades de l’recol·lector d’escombraries dels objectes que encara són vius en el Survivor Space deixen de ser considerats Young Generation i passen a ser considerats Old Generation.

Java Garbage Collector Old Generation

Com funciona la zona d’Old Generation ?. Aquesta zona aquesta divivida en dues parts, la primera es denomina tenured Generation i és on els objectes que tenen un cicle de vida llarg s’emmagatzemen. La segona zona es denomina Permanent Generation i és on estan carregades les classes Java que la JVM necessita.

JavaGarbageCollectorPermanent

Així doncs quan nosaltres tenim objectes que han sobreviscut a diversos garbage collectors passen de l’Survivor Generation Space a tenured Generation Space.

Java Garbage Collector Permanent Final

Finalment el recol·lector d’escombraries també passarà pel tenured Space per alliberar objectes. Aquesta operació es realitzarà d’una forma molt més espaiada i quan l’espai es trobi pràcticament ple.

Per ampliar informació: Oracle Java Garbage Collector

Altres articles relacionats: Java Collection Performance, Java Fluid Interface, Java Threads

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *