Schimbați mormanul de memorie maxim pentru Java pe Mac OS X

Sunt încercarea de a schimba dimensiunea maximă de memorie „heap“ pentru Java pe Mac OS X. Am citit multe locuri pentru a schimba „-XX: MaxPermSize“, dar nu pot găsi fișierul și nu știu de unde să schimbe acest lucru setare.

0
Hoe ai alerga java?
adăugat autor Mark, sursa
Ceea ce am făcut în trecut este să mutați /bin/java în /bin/realjava și apoi să creați un script shell /bin/care îl sună pe cea reală cu anumite setări implicite. Cu toate acestea, recomand acest lucru. Sunteți mult mai bine să reglați fiecare JVM individual la cerințele sale exacte.
adăugat autor opyate, sursa
De ce aveți aici eticheta "scala"? Dacă utilizați Scala, răspunsul este nu exact același ca și în cazul Java (dacă utilizați scala nu java -cp /.../ -library.jar Scala: ... ).
adăugat autor Rex Kerr, sursa

5 răspunsuri

Max heap size is set using -Xmx switch.

-XX:MaxPermSize is used to specify the max size of perm generation which is a subset of the total heap

0
adăugat
Comutatorul -Xmx nu modifică dimensiunea memoriei la nivel global, funcționează numai cu o singură clasă la un moment dat. Mă întreb cum să schimbați alocarea de memorie la nivel global pentru toate scripturile.
adăugat autor user1435853, sursa
Ce fișier pot edita pentru a seta "-XX: MaxPermSize". Comanda "java -Xmx" nu funcționează pentru mine decât dacă menționez o clasă. Nu modifică în mod global setarea memoriei de heap.
adăugat autor user1435853, sursa
@ user1435853 unde ați citit că -Xmx nu este global? Se aplică întregului JVM.
adăugat autor Jim Garrison, sursa
Nu există un astfel de lucru ca un set "global". JVM are o valoare implicită pe care o folosește, pe care o puteți suprascrie când îl invoca.
adăugat autor matt b, sursa

Încercam să rulez un program Java cu o gamă extrem de mare în Terminal. Ea a continuat să scape de memorie, dar am rezolvat problema prin creșterea memoriei per thread:

$ java -Xss12G name

Aici codul -Xss12G indică timpul de rulare java pentru a aloca 12Gb pe fir și apoi executați name . În mod similar, -Xss4G utilizează 4Gb pe fir. $ este promptul consolei Terminal și va avea, în mod propice, dosarul și numele dvs.

Prin scrierea comenzii java -X în Terminal veți obține mai multe detalii despre alocarea memoriei heap și thread:

$ java -X
0
adăugat

puteți seta memoria disponibilă pentru java VM utilizând următorii parametri:

-Xms64m -Xmx200m

-Xms specifică memoria minimă; -Xmx cea maximă.

Trebuie să le specificați atunci când executați aplicația. De exemplu, dacă aveți un jar numit app.jar, îl puteți rula tastând

java -Xms64m -Xmx512m -jar app.jar

Cred că pe o mașină pe 32 de biți nu poți da JVM mai mult de 1Gb.

0
adăugat
Pe OS X Mavericks, instalarea java implicită nu acceptă -Xsm64m. Am omis acest lucru și totul a decurs bine
adăugat autor CVertex, sursa
De ce numai 1G? Nu este 3G sau 4G în teorie?
adăugat autor om-nom-nom, sursa
dacă utilizați un IDE, puteți seta probabil acești parametri în setările proiectului. În eclipse, de exemplu, faceți clic pe Run-> Run Configurations
adăugat autor Marco Galassi, sursa
Cu o arhitectură pe 32 de biți puteți avea maximumun 4GB de memorie fizică, dar memoria disponibilă pe care o aplicație, un proces etc. poate folosi depinde de mulți factori. De exemplu, sistemul de operare are nevoie de o cantitate de memorie pentru a se ocupa de procesele sistemului etc. Nu știu de unde provine limita de memorie VM, îmi pare rău. Oricum, cred că depinde și de sistemul de operare pe care îl utilizați în prezent. Sub Windows, nu am reușit niciodată să ofer mai mult de 1GB lui VM
adăugat autor Marco Galassi, sursa
Eu vorbesc despre 1GB, dar de fapt nu-mi amintesc care este suma exactă
adăugat autor Marco Galassi, sursa

Dacă lansați aplicația de la Terminal, ați furniza argumentele pe linia de comandă:

java -XX:MaxPermSize=128m ...

Acest lucru este același ca și în orice altă platformă.

Dacă trebuie să setați acest lucru pentru un pachet de aplicații (de exemplu, o aplicație Java care arată ca o aplicație Mac obișnuită, cu dublu clic), va trebui să editați fișierul info.plist, care se află în interiorul pachetului și nu este în mod normal vizibil.

This page has instructions on how to do this for IntelliJ, but is applicable to other bundled Mac Java apps, as well.

0
adăugat

Folosesc WEKA și am aceeași problemă. Aici, am găsit soluția și a fost ușor.

Go to Application==> Left click on specific application (like Weka)==> Show Package Content==> Contents==>Info.Plist==>Java==> VMOptions==> increase the size of memory as you want (in my mac the default was 1 Gb, I increased to 6 Gb)

0
adăugat
Prefer acest răspuns pentru că este simplu și simplu și oferă o soluție permanentă.
adăugat autor Jason F, sursa