Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 24728|Atbildi: 1

[Avots] Nevarēja rezervēt pietiekami daudz vietas objekta kaudzei 2097152 KB

[Kopēt saiti]
Publicēts 24.07.2017 10:43:36 | | | |
Kļūda: nevarēja rezervēt pietiekami daudz vietas 2097152 KB objekta kaudzei

Es sāku activemq un ziņoju par kļūdu, ko izraisīja pārāk liels piešķīrums, tāpēc, piešķirot MQTT atmiņu, tas ir jānosaka, apvienojot servera atmiņas lielumu (izmantojiet brīvu -g) un vai JDK atbalsta atmiņas lielumu.

JVM parametru iestatījumi

Galvenie parametri:
-Xms: sākotnējais atmiņas lielums
-Xmx: maksimālais atmiņas lielums
-Xmn: jaunākās paaudzes lielums

Izmantojiet komandu Java -Xmx2047M -version, lai redzētu, vai tā atbilst:


Šķīdums:

Sākums - > Vadības panelis - > Sistēma - > Papildu iestatījumi - > Vides mainīgie - > Sistēmas mainīgie

Jauns mainīgais:
Mainīgā nosaukums: _JAVA_OPTIONS   
Mainīgā vērtība: -Xmx1G






Iepriekšējo:MySQL vaicā tabulā bez tukša ierakstu skaita
Nākamo:Atšķirība starp Java virtuālās mašīnas JVM serveri un klientu
 Saimnieks| Publicēts 24.07.2017 10:45:37 |
Nesen strādāju pie Java programmas. Sākotnēji man vienmēr ir patikusi Java atmiņas pārvaldība, nav jāuztraucas par atmiņas piešķiršanu, vienkārši piešķiriet, atkritumu savācējs atgūs atmiņu jūsu vietā. Tagad programma ir izstrādāta ar lielu datu apjomu, un ātruma labad es ielādēšu visu informāciju atmiņā, kas nodrošinās ātru reakciju. Es joprojām atkārtoti skaitu atmiņu, domājot par savu datu apjomu, kas sākumā būtu pietiekams (manai mašīnai ir 4G atmiņa, lai gan Windows atpazīst 3.5G, bet tam vajadzētu būt labi, salīdzinot ar manu pašreizējo datu apjomu).

Negaidīti pirmā eksperimenta programma darbojās dažas stundas un saskārās ar atmiņas trūkuma izņēmumu. Aplūkojot savus VM iestatījumus, es iestatīju -Xms512M -Xmx1024M. Nedomājot par to, es to tieši nomainīju uz -Xms512M -Xmx2048M, un rezultāts bija tāds, ka es nevarēju rezervēt pietiekami daudz vietas objektu kaudzei. Programma nevar piecelties. Tikai tad es sapratu, ka joprojām ir ierobežojums sākotnējai maksimālajai atmiņai. Es meklēju internetā un atradu daudzus rakstus, kuros tika apspriests šis jautājums. Visbeidzot, es atradu visnoderīgāko rakstu BEA DEV2DEV forumā

Šeit moderators YuLimin veica testu un nonāca pie secinājuma:

Kompānijas JVM versija Maksimālā atmiņa (mega) klients Maksimālā atmiņa (mega) serveris

SVĒTDIENA 1.5.x 1492 1520

SAULE 1.5.5 (Linux) 2634 2660

SVĒTDIENA 1.4.2 1564 1564

SAULE 1.4.2 (Linux) 1900 1260

IBM 1.4.2 (Linux) 2047 N/A

BEA JRockit 1.5 (U3) 1909 1902

Es tagad JDK1.6.0_05 izmantoju, pārbaudīju to. Lielākā lieta klienta stāvoklī ir tā, ka mans JDK neatpazīst parametru -Server un nevar pārbaudīt servera stāvokli. Aplēses ir aptuveni tādas pašas.

SVĒTDIENA 1.6.0 1442 N/A

Šķiet, ka Java nav iespējams izmantot lielu atmiņu. Un vispārējs teiciens ir tāds, ka, ja atmiņa ir pārāk liela, atkritumu savākšanas laiks būs ilgs. Tas ir arī saprotams, parasti tiek savākts, ja atmiņa nav pietiekama, 2G atmiņas skenēšana, protams, ir daudz lēnāka nekā 1G, un ir vairāk atmiņas objektu, paredzamā attiecība eksponenciāli palielinās.

Zemāk ir pievienotas YuLimin testa metodes un testa ieraksti.

Testa metode: Izmantojiet komandu java -XmxXXXXM -version, lai pārbaudītu komandrindu, un pēc tam pakāpeniski palieliniet XXXX vērtību, ja tā darbojas normāli, tas nozīmē, ka ir pieejams norādītais atmiņas lielums, pretējā gadījumā tiks izdrukāts kļūdas ziņojums.
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com