Rodzime i Java sterty
Maszyna JVM obsługuje dwa obszary pamięci, stertę Java™ oraz stertę rodzimą (lub systemową). Te dwa hałdy mają różne cele i są utrzymywane przez różne mechanizmy.
Sterta Java zawiera instancje obiektów Java i często określa się je jako "stertę". Jest to sterta Java, która jest obsługiwana przez czyszczenie pamięci, i jest stertą Java, która jest zmieniana przez ustawienia sterty wiersza komend. Sterta Java jest przydzielana za pomocą mmap, lub shmat, jeśli zażądano obsługi dużych stron. Maksymalna wielkość sterty Java jest wstępnie przydzielana podczas uruchamiania maszyny JVM jako jeden ciągły obszar, nawet jeśli minimalne ustawienie wielkości sterty jest mniejsze. Ta alokacja umożliwia ograniczenie maksymalnej wielkości sterty narzuconej przez ustawienie minimalnej wielkości sterty w celu przejścia do rzeczywistego limitu wielkości sterty w przypadku rozszerzenia sterty. Więcej informacji na ten temat zawiera sekcja Zarządzanie pamięcią w publikacji J9 VM reference .
- Obiekty Motif wymagane przez AWT i Swing
- Bufory dla procedur kompresji danych, które są miejscem pamięci, które są wymagane przez biblioteki klas Java do odczytu lub zapisu skompresowanych danych, takich jak pliki .zip lub .jar.
- Przydziały malloc według kodu JNI aplikacji
- Skompilowany kod wygenerowany przez kompilator Just In Time (JIT)
- Wątki do odwzorowania na wątki Java