Pierwszy zbieracz śmieci

Moduł wyrzucania elementów bezużytecznych ( G1 ) to algorytm usuwania elementów bezużytecznych wprowadzony w maszynie wirtualnej Oracle HotSpot Java (JVM) 6 i obsługiwany od 7 Update 4 . Planowano zastąpić współbieżny kolektor znaczników (CMS) w JVM 7 i został ustawiony jako domyślny w Javie 9.

Śmieciarz

Garbage-first (G1) to moduł wyrzucania elementów bezużytecznych typu serwerowego , przeznaczony dla wieloprocesorów z dużymi pamięciami , który z dużym prawdopodobieństwem spełnia miękki cel w czasie rzeczywistym , osiągając jednocześnie wysoką przepustowość . G1 preferencyjnie zbiera regiony z najmniejszą ilością danych na żywo lub „najpierw śmieci”. G1 to długoterminowy zamiennik CMS. wątkami aplikacji , aby zapobiec przerwom proporcjonalnym do rozmiaru sterty lub danych na żywo. Jednoczesne oznaczanie zapewnia zarówno kompletność zbioru, jak i identyfikuje regiony dojrzałe do rekultywacji poprzez zagęszczanie ewakuacji. Ta ewakuacja jest wykonywana równolegle na procesorach wieloprocesorowych, aby skrócić czas przerw i zwiększyć przepustowość.

G1 został po raz pierwszy wprowadzony jako opcja eksperymentalna w Javie SE 6 Update 14, gdzie można go włączyć za pomocą następujących dwóch parametrów wiersza poleceń: -XX:+UnlockExperimentalVMOptions i -XX:+UseG1GC W JDK 7, G1 miał zastąpić CMS w wirtualnej maszynie wirtualnej Hotspot. Istnieją dwie główne różnice między CMS a G1. Po pierwsze, G1 jest zagęszczającym . G1 kompaktuje na tyle, aby całkowicie uniknąć używania drobnoziarnistych bezpłatnych list do alokacji, co znacznie upraszcza części kolektora iw większości eliminuje potencjalne problemy z fragmentacją . Oprócz kompaktowania, G1 oferuje bardziej przewidywalne przerwy w usuwaniu elementów bezużytecznych niż kolektor CMS i pozwala użytkownikom ustawić pożądane cele pauz.

W Javie 9 G1 został domyślnym modułem wyrzucania elementów bezużytecznych, pomimo sprzeciwu Google proponującego dobrze znany CMS jako standard, twierdząc, że zmodyfikowany CMS, którego używa, działa lepiej niż G1. Od tego czasu firma Oracle znacznie poprawiła przepustowość, opóźnienia i zużycie pamięci G1 .

Produkty powiązane

Gwarantowane działanie w czasie rzeczywistym, nawet w przypadku usuwania elementów bezużytecznych, wymaga modułu usuwania elementów bezużytecznych w czasie rzeczywistym, takiego jak te dostarczane z Java RTS firmy Sun lub WebSphere RT firmy IBM .

Zobacz też

Linki zewnętrzne