Po czytania już zadawane pytanie na ten temat i dużo googlowania Wciąż nie jestem w stanie mieć jasny obraz -Xms opcjiJVM parametry kupie
Moje pytanie brzmi: jaka jest różnica między java -Xms=512m -Xmx=512m
i java -Xms=64m -Xmx=512m
?
Na razie mam następującą odpowiedź:
Jedyna różnica jest w liczbie kolekcji śmieci, które będą uruchamiane podczas uruchamiania mojego wniosku oraz liczby alokacji pamięci. Czy mam rację ?
Oto moje powody tej odpowiedzi:
ustawienie opcji -Xms
do 512m
nie powoduje w mojej aplikacji przy użyciu naprawdę 512M
pamięci fizycznej po starcie. Przypuszczam, że jest to związane z zarządzaniem nowoczesnymi pamięciami systemowymi OS i leniwymi alokacjami stron. (Zauważyłem, że ustawienie -Xms
do 512M
lub 64M
nie zmienia się w ogóle początkowej pamięci używanych zgłaszane zarówno przez góry na Linux lub przez menedżera zadań Windows)
Czy ktoś może mi pomóc zrozumieć wpływ tego Xms
opcją lub wskaż mi linki, które pomogą mi to zrozumieć?
góry dzięki
Manu
Myślę, że prawdziwa składnia to -Xms64m, a nie -Xms = 64m. Jeśli się mylę, wycofaj się! – Burkhard
Przenieśli się przez to podczas badania niektórych drobniejszych punktów konfiguracji jvm. Przyjęta tu odpowiedź jest bardzo różna od mojego zrozumienia tych wartości. Tak, większość systemów operacyjnych będzie udostępniać fizyczne strony tylko wtedy, gdy zostanie wykryta drobna usterka strony, gdy aplikacja próbuje uzyskać dostęp do pamięci, którą ma malloc'ed - ale Xms określa początkową ilość pamięci malloced przez jvm - która umieszcza górną granicę na liczba stron, które można przypisać * bez * aplikacji malloc'ing więcej pamięci - aw przypadku Javy, to tylko malloc więcej pamięci (do Xmx), jeśli niewystarczająca ilość pamięci jest udostępniona przez gc – symcbean
@symcbean Jestem zdezorientowany . Wygląda na to, że twoje zrozumienie wcale nie różni się od tego, co jest w odpowiedzi. Używasz tylko różnych słów, ale opisujesz dokładnie to samo zachowanie. – Turismo