Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 67240|Răspunde: 2

[Sursă] Eroarea JAVA a apărut în timpul inițializării erorii VM

[Copiază linkul]
Postat pe 14.08.2017 16:49:22 | | | |
Eroarea a apărut în timpul inițializării VM-ului
Nu am putut rezerva suficient spațiu pentru un object heap de 3145728KB



Recent lucrez la un program pentru Java. Inițial, mi-a plăcut mereu gestionarea memoriei în Java, nu trebuie să-ți faci griji pentru alocarea memoriei, doar alocă, iar garbage-collector-ul va recupera memoria pentru tine. Acum programul este dezvoltat cu o cantitate mare de date, iar pentru viteză, voi încărca toate informațiile în memorie, ceea ce va asigura un răspuns rapid. Încă număr memoria în mod repetat, gândindu-mă la cantitatea mea de date, care ar trebui să fie suficientă la început (calculatorul meu are memorie 4G, deși Windows recunoaște 3,5G, dar ar trebui să fie în regulă comparativ cu volumul meu actual de date).

În mod neașteptat, programul primului experiment a rulat câteva ore și a întâlnit o Excepție Fără Memorie. Uitându-mă la setările mele VM, am setat -Xms512M -Xmx1024M. Fără să mă gândesc, am schimbat-o direct în -Xms512M -Xmx2048M, iar rezultatul a fost că nu am putut rezerva suficient spațiu pentru object heap. Programul nu se poate ridica. Abia atunci mi-am dat seama că încă exista o limită a memoriei maxime originale. Am căutat pe Internet și am găsit multe articole care discutau această problemă. În final, am găsit cel mai util articol pe forumul DEV2DEV al BEA

Aici moderatorul YuLimin a făcut testul și a ajuns la concluzia:

Versiunea JVM companiei Client cu memorie maximă (mega) Server cu memorie maximă (mega)

DUM 1.5.x 1492 1520

SUN 1.5.5 (Linux) 2634 2660

DUM 1.4.2 1564 1564

DUM 1.4.2 (Linux) 1900 1260

IBM 1.4.2(Linux) 2047 N/A

BEA JRockit 1.5 (U3) 1909 1902

Acum folosesc JDK1.6.0_05, am testat-o. Cel mai important lucru în starea clientului este că JDK-ul meu nu recunoaște parametrul -Server și nu poate testa starea serverului. Estimările sunt cam aceleași.

DUM 1.6.0 1442 N/d

Se pare că este imposibil să folosești o memorie mare în Java. Și zicala generală este că dacă memoria este prea mare, timpul de colectare a gunoiului va fi lung. Acest lucru este de înțeles, de obicei colectat când memoria nu este suficientă, scanarea memoriei 2G este, desigur, mult mai lentă decât 1G și există mai multe obiecte de memorie, relația estimată crește exponențial.

Mai jos sunt atașate metodele de testare și înregistrările de testare ale lui YuLimin.

Metoda de testare:Testează cu comanda java -XmxXXXXM -version din linia de comandă, și apoi creșterea treptată a valorii XXXX, dacă este executată normal, înseamnă că dimensiunea memoriei specificată este disponibilă, altfel va fi tipărit un mesaj de eroare.





Testează memoria maximă suportată a JVM-ului, apoi setează variabilele de mediu pe sistem

Numele variabilei: _JAVA_OPTIONS
Valoare: - Xmx1G






Precedent:Se folosește pluginul jQuery fullscreen "jQuery Fullscreen Plugin"
Următor:Diferența dintre certificatele SSL, OV, DV și EV
 Proprietarul| Postat pe 14.08.2017 16:51:30 |
Versiunea Java "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) VM server pe 64 de biți (build 25.144-b01, mod mixt)



Versiunea Java "1.8.0_144" Mod server-side pe 64 de biți, memorie 80G, fără probleme

 Proprietarul| Postat pe 01.09.2020 22:29:04 |
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com