سؤال

أنا في حيرة من أمري بشأن معلمتين قد تتحكمان في وقت بدء تشغيل مجمع CMS:

MaxHeapFreeRatio (70% بشكل افتراضي)

CMSInitiatingOccupancyFraction (أكثر من 90% بشكل افتراضي)

ماذا تعني كل من هذه المعلمات بالضبط؟متى يبدأ المجمع (مرحلة الوسم)، والتجميع (مرحلة الكنس)؟

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

المحلول

CMSInitiatingOccupancyFraction يقرر متى يبدأ تشغيل نظام إدارة المحتوى (CMS) (لكي يكون هذا الخيار فعالاً، يجب عليك أيضًا تعيين -XX:+UseCMSInitiatingOccupancyOnly). MaxHeapFreeRatio هو خيار لحجم مساحات الأجيال.

انظر مثلا...

http://java.sun.com/docs/hotspot/gc1.4.2/faq.html

عمومًا، لا يمكن تسريع عملية التجميع المتزامنة، ولكن يمكن البدء بها مبكرًا.يبدأ تشغيل المجموعة المتزامنة عندما تتجاوز النسبة المئوية للمساحة المخصصة في الجيل القديم الحد.يتم حساب هذا الحد بناءً على الخبرة العامة مع المُجمع المتزامن.في حالة حدوث مجموعات كاملة، قد تحتاج المجموعات المتزامنة إلى البدء مبكرًا.يمكن استخدام علامة سطر الأوامر CMSInitiatingOccupancyFraction لتعيين المستوى الذي تبدأ عنده المجموعة.قيمته الافتراضية هي حوالي 68%.سطر الأوامر لضبط القيمة هو -XX:CMSInitiatingOccupancyFraction=<percent>

http://www.Oracle.com/technetwork/Java/gc-tuning-5-138395.html

افتراضيًا، يقوم الجهاز الظاهري بزيادة أو تقليص الكومة في كل مجموعة لمحاولة الحفاظ على نسبة المساحة الحرة للكائنات الحية في كل مجموعة ضمن نطاق معين.يتم تعيين هذا النطاق المستهدف كنسبة مئوية بواسطة المعلمات -XX:MinHeapFreeRatio=<minimum> و -XX:MaxHeapFreeRatio=<maximum>, ، ويحد الحجم الإجمالي أدناه -Xms وما فوق بواسطة -Xmx.

..أو ..

http://www.petefreitag.com/articles/gctuning/

-XX:MaxHeapFreeRatio - عندما تزيد نسبة المساحة الحرة في الجيل عن هذه القيمة سوف يتقلص الجيل ليحقق هذه القيمة.الافتراضي هو 70

يحرر :لقد قمت بإجراء بعض عمليات المحاكاة باستخدام برنامج اختبار يقوم بإنشاء خرائط لمصفوفات البايت بشكل عشوائي ونسخها.لقد لاحظت أن قيمة الكسر لم تحظى باحترام - لا سيما ذات قيمة محافظة (على سبيل المثال 50) مرحلة العلامة الأولية CMS التي تم ركلها بنسبة تتجاوز 50 ٪ ، عادة ما تكون حوالي 70-80 ٪ و B) قيم الكسر الأصغر سناً جعلت CMS تحدث المرحلة الأولية في وقت سابق (البرنامج المستخدم -Xmx1536m -Xmx1536m -XX:NewSize=512m -XX:+UseConcMarkSweepGc + تسجيل gc ومعلمتي الاختبار)

لقد عثرت أيضًا على تقرير خطأ قديم بخصوص هذا: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6486089

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