mam zamiar wdrożyć aplikację na serwerze na żywo i teraz jestem w części, w której trzeba ustawić sterty i PermGen rozmiary dla JVM. Widziałem wiele artykułów i wszyscy mówili "ustaw minimalny rozmiar sterty na (pewna liczba)" i "ustaw maksymalny rozmiar sterty na (pewna liczba)", ale żaden z tych artykułów nie mówi naprawdę, dlaczego minimalny rozmiar sterty musi być ustawiony. Rozumiem powód, dla którego należy ustawić maksymalny rozmiar sterty, ale nie o minimum. Byłbym wdzięczny, gdybyś rzucił trochę światła na to.Czy naprawdę trzeba określić minimalny rozmiar sterty Java
Odpowiedz
Stuła w Javie to ogólny obszar alokacji pamięci. Załóżmy, że ustawiamy minimalny rozmiar sterty na 1000 bajtów (jest to absurdalnie niska liczba). Teraz powiedzmy, że tworzę obiekt w moim programie, który zawiera tekst o długości dwóch tysięcy znaków. Nie mogę zapisać tego obiektu bez wcześniejszego powiększenia mojego rozmiaru sterty. Teraz prawdopodobnie mój maksymalny parametr sterty jest wystarczająco duży, aby na to pozwolić - ale to jest powód, by ustawić maksymalny rozmiar sterty.
Załóżmy jednak, że mój serwer ma 4G pamięci RAM, a ja ustawiłem minimalny rozmiar sterty na to. (Absurdalnie duża liczba). Jeśli żadne inne programy nie zajęłyby się pamięcią, działałoby to. Jeśli jednak rozpocznę drugi proces z moim programem java, to nie będzie w stanie przydzielić wystarczającej ilości pamięci i zamknąć.
Minimalna wielkość robi dwie rzeczy dla ciebie; po pierwsze, sprawia, że pamięć jest dostępna szybko, aby umożliwić szybki start. Po drugie, pozwala dostroić jvm, tak abyś miał kilka niezmienników, umożliwiając przewidywanie, ile procesów możesz uruchomić. Jeśli twój minimalny rozmiar sterty jest zbyt duży, prawdopodobnie marnujesz pamięć na proces, który nigdy nie wymaga tak dużo, ograniczając pojemność twojego systemu. Jeśli ustawisz go za mało, uruchomienie programów zajmie dużo czasu, co negatywnie wpłynie na wydajność procesu.
Ustawianie minimalnej wielkości sterty Java pozwala przeznaczyć trochę pamięci z przodu co poprawia czas uruchamiania.
Ustalenie minimalnego rozmiaru jawnie (powyżej domyślnie) pomaga z fragmentacją alokacji na poziomie systemu operacyjnego i rozruchu wydajność czasową.
Java Heap jest poparta pamięci przydzielonej przez system operacyjny, tym większy początkowy blok mniej realokacja i fragmentacja, że nastąpi.
Ustawianie minimum równą lub prawie równą maksymalnej, wyeliminuje te sytuacje całkowicie.
- 1. Android manifest VM minimalny rozmiar sterty
- 2. Jak ustawić naprawdę duży rozmiar sterty JVM?
- 3. Czy istnieje minimalny rozmiar sterty dla wersji Androida?
- 4. Minimalny rozmiar gtk
- 5. Jak zwiększyć rozmiar sterty java w netbeans?
- 6. maven cel budowy trzeba określić
- 7. Jak zwiększyć rozmiar sterty JVM
- 8. Zwiększ rozmiar sterty w Javie
- 9. Domyślny rozmiar sterty javac dla java na stałe
- 10. Jak określić tryb minimalny dla BottomAppBar WP8.1
- 11. trwale zwiększyć wielkość sterty java?
- 12. "Nieprawidłowy maksymalny rozmiar sterty" podczas uruchamiania Maven
- 13. Czy można określić rozmiar pliku do pobrania?
- 14. Jak ustawić minimalny rozmiar okna w wxWidgets?
- 15. Nie można wykonać dex: Przestrzeń sterty Java Przestrzeń sterty Java
- 16. Błąd: przestrzeń sterty Java
- 17. java przestrzeń sterty
- 18. Znajdź bieżący rozmiar sterty z jmap
- 19. R Błąd: java.lang.OutOfMemoryError: Przestrzeń sterty Java
- 20. Jak zwiększyć rozmiar sterty aplikacji w Eclipse?
- 21. Czy prawny rozmiar klucza AES to naprawdę limit?
- 22. jak trwale zwiększyć pamięć sterty java?
- 23. Jak zwiększyć rozmiar sterty PHPStorm 9?
- 24. Czy mogę (i czy kiedykolwiek chcę) ustawić maksymalny rozmiar sterty w .net?
- 25. Błąd przestrzeni sterty Java neo4j
- 26. Generowanie zrzutów sterty Java JRE7
- 27. Jak caculate maksymalny rozmiar obiektu, jeśli znany jest maksymalny rozmiar sterty?
- 28. Minimalny rozmiar czcionki przestarzały w wersji ios 6.0
- 29. Czy tablica Java prymitywów jest przechowywana w stosie lub sterty?
- 30. Aplikacja Spark - Java.lang.OutOfMemoryError: Przestrzeń sterty Java
Dlaczego miałbyś ustawić dolny limit na czymkolwiek? Ponieważ Twój program może wymagać określonej kwoty. Czy nie rozumiem tego pytania? Czy to znaczy, że ustawienie min jest rzeczywiście wymagane? – keyser
możliwy duplikat [Jaki jest powód ustawienia minimalnego rozmiaru sterty Java?] (Http://stackoverflow.com/questions/8085949/whats-the-reason-to-set-a-minimal-java-heap-size) – assylias