Młode, trwałe i trwałe pokolenie

Pomyliłem się z pokoleniem Heap,Young,Etured i Perm.

Czy ktoś mógłby wyjaśnić?

Author: Ravindra babu, 0000-00-00

2 answers

Java garbage collector jest określany jako Generative Garbage Collector . Obiekty w aplikacji żyją przez różny czas w zależności od tego, gdzie są tworzone i w jaki sposób są używane. Najważniejsze jest to, że wykorzystanie różnych strategii usuwania śmieci dla obiektów o krótkiej i długiej żywotności pozwala zoptymalizować GC specjalnie dla każdego przypadku.

Luźno mówiąc, jak obiekty "przetrwać" powtarzające się zbiórki śmieci w młode pokolenie są migrowane do pokolenia . permanent Generation jest szczególnym przypadkiem, zawiera obiekty, które są potrzebne przez JVM, które niekoniecznie są reprezentowane w twoim programie, na przykład obiekty, które reprezentują klasy i metody.

Ponieważ młode pokolenie zazwyczaj zawiera w sobie dużo śmieci, jest zoptymalizowane do pozbycia się wielu nieużywanych przedmiotów na raz. Pokolenie ponieważ zawiera dłuższe obiekty są zoptymalizowane pod kątem szybkiego usuwania śmieci bez marnowania dużo pamięci.

Wraz z ulepszeniami technologii usuwania śmieci szczegóły stały się dość skomplikowane i różnią się w zależności od JVM i sposobu jego konfiguracji. Powinieneś przeczytać dokumentację dla konkretnego JVM, którego używasz, jeśli chcesz dokładnie wiedzieć, co się dzieje.

To powiedziawszy, istnieje prosty układ historyczny, który jest nadal przydatny na poziomie koncepcyjnym. Historycznie młode pokolenie byłoby kolekcjoner kopii i pokolenie być mark and sweep collector. A copy collector nie płaci zasadniczo żadnych kosztów procesora za pozbycie się śmieci, większość kosztów polega na utrzymaniu żywych obiektów, ceną tej wydajności jest większe zużycie pamięci. Kolektor mark and sweep płaci pewne koszty procesora zarówno dla żywych, jak i nieużywanych obiektów, ale efektywniej wykorzystuje pamięć.

 67
Author: Tendayi Mawushe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-05 07:27:41

Java Heap Memory jest częścią pamięci przydzielonej do JVM przez System operacyjny. Ilekroć tworzymy obiekty, są one tworzone wewnątrz sterty w Javie .

Przestrzeń Java Heap jest podzielona na trzy regiony lub generacje w celu zbierania śmieci zwane generacją młodą, generacją starą lub stałą oraz generacją stałą . Stałe generowanie to śmieci zbierane podczas pełnego gc w hotspocie JVM

The młode pokolenie gdzie wszystkie nowe obiekty są przydzielane i postarzane. Gdy młode pokolenie zapełnia się, powoduje to niewielki wywóz śmieci. Młode pokolenie pełne martwych przedmiotów zbiera się bardzo szybko. Niektóre ocalałe przedmioty są w wieku i ostatecznie przenieść do starego pokolenia.

The Old Generation służy do przechowywania długo zachowanych przedmiotów. Zazwyczaj dla obiektu młodego pokolenia ustawiany jest próg, a po osiągnięciu tego wieku obiekt zostaje przeniesiony do starego pokolenia. W końcu stare pokolenie musi być zbierane. To wydarzenie nazywa się wielkim zbiórką śmieci.

The permanent generation zawiera metadane wymagane przez JVM do opisu klas i metod używanych w aplikacji. Generowanie stałe jest wypełniane przez JVM w czasie wykonywania w oparciu o klasy używane przez aplikację.

PermGen został zastąpiony przez Metaspace od wydania Java 8. permsize & MaxPermSize parametry będą teraz ignorowane. Zobacz ten dzone Artykuł by Pierre - Hugues Charbonneau, aby zrozumieć o Metaspace.

Tutaj wpisz opis obrazka

Źródło obrazu: http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html

Zobacz ten sam artykuł, aby uzyskać więcej szczegółów.

 25
Author: ,
Warning: date() expects parameter 2 to be long, string given in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54