Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 67240|Odpowiedź: 2

[Źródło] Błąd JAVA wystąpił podczas inicjalizacji błędu maszyny wirtualnej

[Skopiuj link]
Opublikowano 14.08.2017 16:49:22 | | | |
Podczas inicjalizacji maszyny wirtualnej wystąpił błąd
Nie udało się zarezerwować wystarczającej przestrzeni na 3145728KB ster obiektów



Ostatnio pracuję nad programem do Javy. Początkowo zawsze podobało mi się zarządzanie pamięcią w Javie, nie musisz się martwić o alokację pamięci, wystarczy alokować, garbage collector odzyska pamięć za ciebie. Program jest teraz opracowany z dużą ilością danych, a dla szybkości zamierzam załadować wszystkie informacje do pamięci, co zapewni szybką odpowiedź. Wciąż wielokrotnie liczę pamięć, myśląc o własnej ilości danych, co powinno wystarczyć na początku (mój komputer ma pamięć 4G, chociaż Windows rozpoznaje 3,5G, ale powinno być dobrze w porównaniu do obecnej ilości danych).

Niespodziewanie program pierwszego eksperymentu trwał kilka godzin i napotkał Wyjątek Out of Memory. Patrząc na ustawienia mojej maszyny wirtualnej, ustawiłem -Xms512M -Xmx1024M. Bez zastanowienia od razu zmieniłem to na -Xms512M -Xmx2048M, a w efekcie nie mogłem zarezerwować wystarczająco dużo miejsca na ster obiektów. Program nie może wstać. Dopiero wtedy zorientowałem się, że wciąż istnieje limit oryginalnej maksymalnej pamięci. Przeszukałem Internet i znalazłem wiele artykułów poruszających ten temat. Na koniec znalazłem najbardziej przydatny artykuł na forum DEV2DEV BEA

Tutaj moderator YuLimin przeprowadził test i doszedł do wniosku:

Wersja firmowa JVM Klient z maksymalną liczbą pamięci (mega) Serwer z maksymalną liczbą pamięci (mega)

NIEDZIELA 1.5.x 1492 1520

SUN 1.5.5(Linux) 2634 2660

NIEDZIELA 1.4.2 1564 1564

SUN 1.4.2(Linux) 1900 1260

IBM 1.4.2(Linux) 2047 N/A

BEA JRockit 1.5 (U3) 1909 1902

Używam teraz JDK1.6.0_05, testowałem. Największym problemem w stanie klienta jest to, że mój JDK nie rozpoznaje parametru -Server i nie może przetestować stanu serwera. Szacunki są mniej więcej takie same.

NIEDZIELA 1.6.0 1442 N/a

Wydaje się, że w Javie niemożliwe jest użycie dużej pamięci. A ogólne powiedzenie głosi, że jeśli pamięć jest zbyt duża, czas zbierania śmieci będzie długi. To również zrozumiałe, zazwyczaj zbierane wtedy, gdy pamięć jest za mała, skanowanie pamięci 2G jest oczywiście znacznie wolniejsze niż 1G, a obiektów pamięci jest więcej, a szacowana zależność rośnie wykładniczo.

Poniżej załączono metody testowe i rekordy testowe YuLimin.

Metoda testowania:Testuj za pomocą polecenia java -XmxXXXXM -version w wierszu poleceń, a następnie stopniowo zwiększać wartość XXXX; jeśli jest wykonywana normalnie, oznacza to, że dostępny jest określony rozmiar pamięci, w przeciwnym razie zostanie wydrukowany komunikat o błędzie.





Testuj maksymalną obsługiwaną pamięć JVM, a następnie ustaw zmienne środowiskowe na systemie

Nazwa zmiennej: _JAVA_OPTIONS
Wartość: - Xmx1G






Poprzedni:Stosuje się wtyczkę jQuery pełnoekranową "jQuery Fullscreen Plugin"
Następny:Różnica między certyfikatami SSL, OV, DV i EV
 Ziemianin| Opublikowano 14.08.2017 16:51:30 |
Java wersja "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-bitowy serwer VM (build 25.144-b01, tryb mieszany)



Wersja Java "1.8.0_144" 64-bitowy tryb po stronie serwera, pamięć 80g, bez problemu

 Ziemianin| Opublikowano 01.09.2020 22:29:04 |
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com