Permament Generation - po co jest

0

Witam,
Próbuje lepiej zrozumieć znaczenie Permament Generation w JVM.

Czytam, ze:

Permanent Generation (non-heap): The pool containing all the reflective
  data of the virtual machine itself,
  such as class and method objects. With
  Java VMs that use class data sharing,
  this generation is divided into
  read-only and read-write areas.</quote>
Nie rozumiem dlaczego przechowywanie kopii wszystkich klas ma sens. Pewnie chodzi o wydajnosc. Moje pytanie jest nastepujace:
1. Po co wlasciwie istnieje Permament Generation, jakie sa korzysci z jego istnienia?

Pozdrawiam,
0

Prawdopodobnie istnieje po to, by nie tracić niepotrzebnie CPU na przelatywanie obiektów klas przez odśmiecacza. Klasy generalnie rzadko są osieracane, czyli rzadko są kandydatami do odśmiecania, więc można je zostawić w spokoju na dłuższy czas.

W Javie 8 ponadto zmieniono trochę podejście i zamieniono PermGen na Metaspace: http://java.dzone.com/articles/java-8-permgen-metaspace
Zysk jest taki, że nie trzeba z góry ustawiać limitu dla Metaspace - sam może się dynamicznie kurczyć i powiększać.

0

Nie rozumiem dlaczego przechowywanie kopii wszystkich klas ma sens.

Pozwolę sobie zacytować siebie > http://roflcopter.pl/631

<koziolek>Tu uwaga, zauważyłem, że mylisz pojęcia obiekt, klasa i klasa reprezentująca klasę oraz obiekt klasy reprezentującej klasę

Generalnie w tej przestrzeni przechowujemy wszystkie te informacje, które nie są bezpośrednio związane z wykonaniem programu, ale są niezbędne do jego prawidłowego działania.

  • VM jako taką.
  • definicje klas, metod, inaczej mówiąc załadowane pliki class

Ergo, w PermGen leżą sobie informacje o tym co znajduje się w ramach danej maszyny wirtualnej. Informacje te nie są istotne z punktu widzenia wykonywanego programu lecz stanowią jego definicję. To trochę jakbyś używał katalogu samochodowego - masz tam informacje o poszczególnych modelach, ale nie ma to większego wpływu na to jak nimi się w rzeczywistości jeździ. Ta rzeczywistość to konkretne aplikacje działające w ramach VMa

0

Podobają mi się te wytłumaczenia. Bardzo Wam dziękuję.

1 użytkowników online, w tym zalogowanych: 0, gości: 1