Pracuję na serwerze Windows 2003 (64-bitowym) z 8 GB pamięci RAM. Jak mogę maksymalnie zwiększyć pamięć sterty? Używam flagi -Xmx1500m
, aby zwiększyć rozmiar sterty do 1500 Mb. Czy mogę zwiększyć pamięć sterty do 75% pamięci fizycznej (stert 6 GB)?Zwiększ rozmiar sterty w Javie
Odpowiedz
Można zwiększyć do 4 GB w systemie 32-bitowym. Jeśli korzystasz z systemu 64-bitowego, możesz przejść wyżej. Nie musisz się martwić, jeśli wybrałeś nieprawidłowo, jeśli poprosisz o 5g w 32-bitowym systemie, java złoży skargę na nieprawidłową wartość i zakończy działanie.
Jak napisali inni, użyj flag linii-cmd - np.
java -Xmx6g myprogram
Możesz uzyskać pełną listę (lub prawie pełną listę, mimo to), wpisując java -X.
Z mojego doświadczenia wynika, że faktyczny rozmiar sterty Java akceptuje użycie maszyny wirtualnej 32b (w systemie 32b lub 64b - VM jest ważną częścią, tutaj), wynosi około 2G. Również zaskoczony Pytający nie pierwszy wyszukiwania i znaleźć: http://stackoverflow.com/questions/1596009/java-lang-outofmemoryerror-java-heap-space oraz: http://stackoverflow.com/ pytania/37335/how-to-deal-with-java-lang-outofmemoryerror-java-heap-space-error-64mb-heap-s – wsorenson
ah, masz rację oczywiście - w systemie 32-bitowym możesz tylko adresować 2 GB pamięci. –
Czy jest konieczne, aby maksymalna ilość sterty i minimalna wielkość sterty były takie same? – user1747935
Czy mogę zwiększyć pamięć sterty do 75% pamięci fizycznej (6GB sterty).
Tak, można. W rzeczywistości, jeśli chcesz, możesz zwiększyć do więcej niż ilość pamięci fizycznej.
To, czy warto to zrobić, zależy od tego, ile jeszcze działa system. W szczególności, jeśli "zestaw roboczy" aplikacji i usług, które obecnie działają znacznie przekracza dostępną pamięć fizyczną, system jest podatny na "thrash", spędzając dużo czasu na przenoszeniu stron pamięci wirtualnej do iz dysku. Efektem sieci jest to, że system staje się strasznie wolny.
W przypadku 32-bitowej maszyny JVM największy teoretycznie ustawiony rozmiar sterty to 4 gb. Aby użyć większego rozmiaru sterty, musisz użyć 64-bitowej maszyny JVM. Spróbuj wykonać następujące czynności:
java -Xmx6144M -d64
-d64 flaga jest ważne, jak to mówi JVM do uruchomienia w trybie 64-bitowym.
Jest możliwe, aby zwiększyć wielkość sterty przydzielonego przez JVM za pomocą opcji wiersza poleceń Tu mamy 3 opcje
-Xms<size> set initial Java heap size
-Xmx<size> set maximum Java heap size
-Xss<size> set java thread stack size
java -Xms16m -Xmx64m ClassName
W powyższej linii możemy ustawić minimalny sterty do 16MB i maksymalny sterty 64MB
jest możliwe, aby zwiększyć wielkość sterty przydzielonego przez JVM Eclipse bezpośrednio w Eclipse IDE goto
Run Run Konfiguracje ----> ----> Argumenty
Wejście -Xmx1g (jest on stosowany, aby ustawić maksymalną wielkość jak Xmx256m lub Xmx1g ...... M -> MB g ---> gb)
Wystarczy dodać argument VM (Eclipse daje dwie opcje). –
Java -d64 -Xms512m -Xmx4g HelloWorld
gdzie -d64: pozwoli na 64-bitowej JVM -Xms512m: Ustawia początkowy rozmiar sterty jako 512 MB -Xmx4g: Ustawia maksymalny rozmiar sterty jako 4 GB (tutaj nazwa pliku Java jest: HelloWorld.java)
Działa to tylko z 64-bitową wersją Java. Przejdź do Panelu sterowania i kliknij ikonę Java.W małym oknie Java Control Panel kliknij pasek menu Java, a następnie kliknij przycisk view
.
Jeśli masz dwie platformy Java, wyłącz poprzednią wersję Java, a następnie kliknij na pole tekstowe Parametry środowiska wykonawczego i wpisz -Xmx1024m
lub mniej niż rozmiar pamięci RAM. Nie zwiększaj wielkości sterty równej RAM, w przeciwnym razie Twój system ulegnie awarii.
do oddania głosu ?? dla tej odpowiedzi? – madhairsilence
zmienić wielkość sterty do 6GB
export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"
Jeśli mam pamięć 8G w moim systemie i widzę od menedżera zadań, że 70% z tego jest w użyciu; czy jest możliwe przydzielenie pamięci 6G do rozmiaru sterty java? –
Tak proszę skorzystać z poniższego polecenia. Możesz.
Możesz zwiększyć pamięć sterty do 75% pamięci fizycznej (6 GB Sterty) lub wyższej.
Ponieważ używasz opcji 64-bitowych, możesz zwiększyć rozmiar sterty do żądanej ilości. W przypadku korzystania z 32-bitowej karty jest ograniczona do 4 GB.
$ java -Xms512m -Xmx6144m JavaApplication
ustawia cię z początkowej wielkości sterty do 512 i maksymalny heapsize do 6GB.
nadzieję, że pomoże .. :)
Wydaje się to bardzo podobne do dwóch najczęściej głosowanych odpowiedzi opublikowanych kilka lat wcześniej. – Dukeling
Kilka osób wskazał konkretne odpowiedzi na wielkość sterty z opcji JVM z -Xms
i -Xms
. Chcę zauważyć, że nie jest to jedyny typ opcji pamięci dla jvm. W szczególności, jeśli otrzymujesz stos na przepływie, powinieneś zwiększyć rozmiar stosu, dodając dodatkową opcję, taką jak -Xss8m
.
Dla tego problemu rozwiązaniem mogłyby być opcje jvm o parametrach takich jak -Xms2g -Xmx6g -Xss8m
.
Udostępniam te informacje, ponieważ moje wyszukiwanie w Google, w jaki sposób zwiększyć pamięć jvm, zabrało mnie do tego rozwiązania, a rozwiązania nie działały z dużą ilością alokacji pamięci. Kiedy zorientowałem się, jakie są konkretne ustawienia, byłem w stanie dowiedzieć się, jak zwiększyć rozmiar stosu i znaleźć brakujący parametr. :) Mam nadzieję, że to zaoszczędzi innym czasu, ponieważ zaoszczędziłoby mi to mnóstwo czasu. :)
Można zwiększyć wielkość sterty przekazując JVM parametry -Xms i -Xmx jak poniżej:
Dla Jar pliki:
java -jar -Xms4096M -Xmx6144M jarFilePath.jar
Pliki Java:
java -Xms4096M -Xmx6144M ClassName
Powyższe parametry zwiększają InitialHeapSize (-Xms) do 4 GB (4096 MB) i MaxHeapSize (-Xmx) do 6 GB (6144 MB).
Ale, Młoda generacja Heap Size pozostanie taka sama, a dodatkowa HeapSize zostanie dodany do Old Generation Heap Size. Aby uzyskać wyrównać rozmiar Young Gen Heap i Old Gen Heap, użyj -XX: NewRatio = 1 -XX: -UseAdaptiveSizePolicy params.
java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar
-XX: NewRatio = Old Gen Heap Size: Młody Gen HeapSize (Można grać z tym stosunek do uzyskania wymaganego współczynnika).
- 1. Zwiększ rozmiar nagłówka pdfMake
- 2. Zwiększ wielkość sterty JVM dla Scala?
- 3. Qt Zwiększ QTabWidget QTabBar rozmiar
- 4. Zwiększ rozmiar nazw pudełek w R
- 5. Zwiększ rozmiar stosu w systemie Windows (GCC)
- 6. Zwiększ rozmiar bufora SPI w Raspbian
- 7. Jak zwiększyć rozmiar sterty JVM
- 8. Zwiększ rozmiar czcionki tekstu hiperłącza html
- 9. Swift Zwiększ rozmiar czcionki widoku UITextview, jak?
- 10. Jak zwiększyć rozmiar sterty aplikacji w Eclipse?
- 11. Jak zwiększyć rozmiar sterty java w netbeans?
- 12. Zwiększ rozmiar (wysokość) na obszarze tytułowego ColorBox
- 13. Jak uzyskać tylko wolny rozmiar sterty (nie razem w stos/mem metody) w Javie?
- 14. Pobierz rozmiar ekranu w Javie
- 15. Android manifest VM minimalny rozmiar sterty
- 16. Znajdź bieżący rozmiar sterty z jmap
- 17. Zwiększ rozmiar czcionki Resharpera w oknie testu jednostki testowej
- 18. Zwiększ rozmiar czcionki w zależności od wielkości urządzenia.
- 19. "Nieprawidłowy maksymalny rozmiar sterty" podczas uruchamiania Maven
- 20. Jak zwiększyć rozmiar sterty PHPStorm 9?
- 21. Jak ustawić naprawdę duży rozmiar sterty JVM?
- 22. Jak uzyskać rozmiar klucza RSA w Javie
- 23. Uzyskaj rozmiar odpowiedzi HTTP w Javie
- 24. Sortowanie tablicy przy użyciu maks. Sterty w Javie
- 25. Jak zmierzyć wykorzystanie pamięci sterty szczytowej w Javie?
- 26. jaki jest rozmiar sterty aplikacji w telefonie iPhone?
- 27. Jak uzyskać rozmiar sterty w systemie Windows Platforma
- 28. Zwiększ rozmiar pliku sql compact 3.5 .sdf przy użyciu C#
- 29. Zwiększ maksymalny rozmiar POST dla Amazon API Gateway
- 30. przywracania stanu sterty w całej sterty
Zakładam, że próbowałeś zwiększyć stertę, ale się nie udało? Czy używasz 64-bitowej maszyny JVM? –
Czy próbowałeś '-Xmx6g'? Czy to nie zadziałało? Co zaobserwowałeś? –
Dzięki za komentarz, ale to nie działa – Sunil