Zwracanie pamięci do systemu operacyjnego

Zwracanie pamięci do systemu operacyjnego
Jarek Korcek
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 4 lata
  • Postów:29
0

Czy wersja java 8 potrafi zwracać zarezerwowana pamięć do systemu operacyjnego gdy juz nie potrzebuje takiej póli czy dopiero od wersji 12 jest to możliwe?

Charles_Ray
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 godziny
  • Postów:1875
1

Doprecyzuj pytanie :) w ogólności - tak, potrafi


”Engineering is easy. People are hard.” Bill Coughran
Jarek Korcek
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 4 lata
  • Postów:29
0

Chodzi mi oto ze np odpalam apke z przydziałem max 8gb pamięci. Podczas dużego obciążenia vm javy zarezerwowała dla siebie ten max i pytanie czy jak obciążenie spadnie i apka bedzie potrzebowala juz tylko 1gb to czy virtualna maszyna javy zwróci to 7gb do systemu operacyjnego co finalnie apka bedzie konsumowala tylko 1gb ramu komputera

Jarek Korcek
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 4 lata
  • Postów:29
0

title
chodzi mi o ten pomarańczowy obszar jak widac na początku zarezerwował 2gb pozniej wyczyscił pamięć prawie do zera i jedzie na bardzo niskim poziomie i czy ten pomaranczowy zarezerwowany i wolny obasz zostanie zwrocony ?

edytowany 3x, ostatnio: Jarek Korcek
Charles_Ray
  • Rejestracja:około 17 lat
  • Ostatnio:około 3 godziny
  • Postów:1875
2

https://stackoverflow.com/questions/30458195/does-gc-release-back-memory-to-os

Podejście, w którym proces JVM zwraca pamięć do OS może spowodować problemy wydajnościowe, np. skoki czasów odpowiedzi aplikacji, jeśli zachodzi akurat resize heapa - raczej niezalecane podejście. A jaki jest Twój use case?


”Engineering is easy. People are hard.” Bill Coughran
edytowany 1x, ostatnio: Charles_Ray
AK
Dotnetowcy to mają
Jarek Korcek
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 4 lata
  • Postów:29
0

ogólnie interesuje mnie czy java 8 to potrafi i robi to automatycznie, bo jakiś czas temu czytałem gdzieś artykuł że potrafi dopiero od wersji 11/12 jak dobrze pamiętam. I jakoś mnie naszło na zweryfikowanie tego a nie potrafie nigdzie znaleźć konkretów

PI
  • Rejestracja:ponad 9 lat
  • Ostatnio:4 miesiące
  • Postów:2787
4

A co jak zwróci do OS, jakiś inny program ją zajmie, i potem już nie będzie jak znowu wziąć tej pamięci dla javy? xd

AK
Dotnet z tym sobie radzi
Charles_Ray
Z ciekawości - w jaki sposób? Czy ta pamięć jest rzeczywiście dostępna dla innych procesów?
AK
Tak. Apka .NET wykonuje intensywny algorytm, bierze ponad swoje zwykłe zużycie 2-3 GB, kończy, po kwadransie (30min, tego rzędu) RAM wraca
Jarek Korcek
  • Rejestracja:ponad 4 lata
  • Ostatnio:około 4 lata
  • Postów:29
0

Słuszna uwaga, ale głównie chodziło mi tylko o to czy jest to możliwe w wersji 8. Czytając stacka podesłanego przez Charles_Ray widzę że 8 to potrafi przy użyciu G1 ale trzeba to ręcznie wywołać, natomiast od wersji 12 robi to automatycznie gdy aplikacja się nudzi.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.