سؤال

أنا أعمل على خادم Windows 2003 (64 بت) مع ذاكرة وصول عشوائي 8 جيجابايت. كيف يمكنني زيادة الحد الأقصى لذاكرة الكومة؟ أنا أستخدم -Xmx1500m العلم لزيادة حجم الكومة إلى 1500 ميغابايت. هل يمكنني زيادة ذاكرة الكومة إلى 75 ٪ من الذاكرة الفعلية (كومة 6 جيجابايت)؟

هل كانت مفيدة؟

المحلول

يمكنك زيادة إلى 4 جيجابايت على نظام 32 بت. إذا كنت على نظام 64 بت يمكنك أن ترتفع. لا داعي للقلق إذا كنت قد اخترت بشكل غير صحيح ، إذا طلبت 5G على نظام 32 بت System ، فسيشتكي Java من قيمة غير صالحة وتوقف.

كما نشر آخرون ، استخدم أعلام CMD -Line - على سبيل المثال

java -Xmx6g myprogram

يمكنك الحصول على قائمة كاملة (أو قائمة كاملة تقريبًا ، على أي حال) عن طريق كتابة Java -x.

نصائح أخرى

من الممكن زيادة حجم الكومة المخصص من قبل JVM باستخدام خيارات سطر الأوامر هنا لدينا 3 خيارات

-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

في الخط أعلاه ، يمكننا ضبط الحد الأدنى للكومة إلى 16 ميجابايت والحد الأقصى للكومة 64 ميجابايت

على JVM 32 بت ، أكبر حجم كومة يمكنك ضبطه نظريًا هو 4 جيجابايت. لاستخدام حجم الكومة الأكبر ، تحتاج إلى استخدام JVM 64 بت. حاول القيام بما يلي:

java -xmx6144m -d64

تعتبر علامة -D64 مهمة لأن هذا يخبر JVM بالتشغيل في وضع 64 بت.

من الممكن زيادة حجم الكومة الذي يخصصه JVM في Eclipse مباشرة في Eclipse Ide Goto

تشغيل ----> تشغيل التكوينات ----> الوسائط

أدخل -xmx1g (يتم استخدامه لتعيين حجم أقصى مثل XMX256M أو XMX1G ...... M-> MB G ---> GB)

Java -D64 -xms512m -xmx4g HelloWorld

حيث ، -d64: سوف يمكّن 64 بت JVM -XMS512M: سيقوم بتعيين حجم الكومة الأولي على أنه 512 ميغابايت -xmx4g: هل سيعين الحد الأقصى لحجم الكومة على 4 غيغابايت (هنا اسم ملف Java هو: HelloWorld.java)

هل يمكنني زيادة ذاكرة الكومة إلى 75 ٪ من الذاكرة الفعلية (كومة 6 جيجابايت).

نعم يمكنك. في الواقع ، يمكنك الزيادة إلى أكثر من كمية الذاكرة الفعلية ، إذا كنت ترغب في ذلك.

سواء كانت فكرة جيدة القيام بذلك تعتمد على المبلغ الذي يتم تشغيله على نظامك. على وجه الخصوص ، إذا كانت "مجموعة العمل" للتطبيقات والخدمات التي تعمل حاليًا تتجاوز بشكل كبير الذاكرة الفعلية المتاحة ، يكون نظامك عرضة لـ "Thrash" ، حيث يقضي الكثير من الوقت في نقل صفحات الذاكرة الافتراضية من وإلى القرص. التأثير الصافي هو أن النظام يصبح بطيئًا بشكل فظيع.

يمكنك زيادة حجم الكومة عن طريق تمرير معلمات JVM -xms و -xmx مثل أدناه:

لملفات جرة:

java -jar -Xms4096M -Xmx6144M jarFilePath.jar

لملفات جافا:

 java -Xms4096M -Xmx6144M ClassName

المعلمات أعلاه تزيد inialheapsize (-xms) إلى 4 جيجابايت (4096 ميغابايت) و maxheapsize (-xmx) إلى 6 جيجابايت (6144 ميغابايت).

لكن ال جيل الشباب سيبقى حجم الكومة نفسه وسيتم إضافة الكثافة الإضافية إلى الجيل القديم حجم كومة. ل تعادل حجم كومة الجنرال الشابة وكومة الجنرال القديم, ، استعمال -xx: newratio = 1 -xx: -useadaptivesizepolicy بارامز.

java -jar -Xms4096M -Xmx6144M -XX:NewRatio=1 -XX:-UseAdaptiveSizePolicy pathToJarFile.jar

-xx: newratio = حجم كومة الجنرال القديم: Gen Young Heapsize (يمكنك اللعب بهذه النسبة للحصول على النسبة المطلوبة).

يرجى استخدام الأمر أدناه لتغيير حجم الكومة إلى 6 جيجابايت

export JAVA_OPTS="-Xms6144m -Xmx6144m -XX:NewSize=256m -XX:MaxNewSize=356m -XX:PermSize=256m -XX:MaxPermSize=356m"

هذا يعمل فقط مع إصدار 64 بت من Java. انتقل إلى لوحة التحكم وانقر على أيقونة Java. على النافذة الصغيرة من لوحة التحكم Java ، انقر فوق شريط قائمة Java ثم انقر فوق view زر.

إذا كان لديك نظامان Java ، فقم بتعطيل الإصدار السابق من Java ، ثم انقر فوق معلمات وقت التشغيل حقل النص واكتب -Xmx1024m أو أقل من حجم ذاكرة الوصول العشوائي. لا تزيد من حجم الكومة يساوي ذاكرة الوصول العشوائي وإلا فإن نظامك سيتعطل.

أشار العديد من الأشخاص إلى الإجابات المحددة لحجم الكومة مع خيارات JVM لـ -Xms و -Xms. أريد أن أشير إلى أن هذا ليس هو النوع الوحيد من خيارات الذاكرة لـ JVM. على وجه التحديد إذا كنت تحصل على مكدس فوق التدفقات ، فأنت تريد زيادة حجم المكدس عن طريق إضافة خيار إضافي مثل -Xss8m.

لهذه المشكلة ، خيارات JVM لشيء مثل -Xms2g -Xmx6g -Xss8m سيكون حلًا.

أشارك هذه المعلومات حيث أن عمليات البحث عن Google الخاصة بي حول كيفية زيادة ذاكرة JVM أخذتني إلى هذا الحل ، ولم تنجح الحلول بكميات عالية من تخصيص الذاكرة. بمجرد أن اكتشفت ماهية الإعدادات المحددة ، تمكنت من كيفية زيادة حجم المكدس ووجدت المبارزة المفقودة. :) أتمنى أن يوفر هذا وقت الآخرين ، كما سيوفر لي الكثير من الوقت. قون

نعم. تستطيع.

يمكنك زيادة ذاكرتك إلى 75 ٪ من الذاكرة الفعلية (كومة 6 جيجابايت) أو أعلى.

نظرًا لأنك تستخدم 64 بت ، يمكنك زيادة حجم الكومة إلى المبلغ المطلوب. في حال كنت تستخدم 32 بت تقتصر على 4 جيجابايت.

$ java -Xms512m -Xmx6144m JavaApplication

يضعك بحجم الكومة الأولي إلى 512 ميغابايت والحد الأقصى إلى 6 جيجابايت.

أتمنى أن يساعد .. :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top