في هذا البرنامج التعليمي ، سوف نتعرف على العديد من جامعي القمامة الحاليين. في Java ، تعد مجموعة Garbage عملية تلقائية يمكن أن تحل محل المبرمجين بمهام معقدة مثل تخصيص الذاكرة وإعادة التدوير. هذه المقالة هي المقالة الثالثة في سلسلة تعليمي مجموعة Garbage. في الجزء 2 السابق ، رأينا كيفية عمل مجموعة القمامة في جافا. هذا مقال مثير للاهتمام. أوصيك أن نلقي نظرة. يقدم الجزء الأول مجموعة Java Garbage ، بما في ذلك بنية JVM ، ونموذج ذاكرة الكومة وبعض مصطلحات Java.
لدى Java أربعة أنواع من جامعي القمامة:
جامع القمامة التسلسلي
جامع القمامة الموازي
تجميع القمامة المسح الضوئي لعلامات المسح (CMS CONSING COLLECTOR)
G1 جامع القمامة
كل نوع له نقاط القوة والضعف الخاصة به. الأهم من ذلك ، عندما نبرمج ، يمكننا تحديد نوع جامع القمامة من خلال JVM. نختار من خلال تمرير المعلمات إلى JVM. كل نوع مختلف تمامًا ويمكن أن يوفر لنا أداء تطبيق مختلف تمامًا. من المهم جدًا فهم كل نوع من جامع القمامة وجعل الاختيار الصحيح بناءً على اختيار التطبيق.
1. جامع القمامة التسلسلي
يعمل جامع القمامة التسلسلي عن طريق عقد جميع خيوط التطبيق. إنه مصمم لبيئة مؤشر ترابط واحد ويستخدم فقط مؤشر ترابط واحد لجمع القمامة ، ويعمل عن طريق تجميد جميع مؤشرات ترابط التطبيق ، لذلك قد لا يكون مناسبًا لبيئات الخادم. إنه الأنسب لبرامج سطر الأوامر البسيطة.
يمكن استخدام جامع القمامة التسلسلي من خلال معلمة JVM -xx:+useerialgc.
2. جامع القمامة الموازي
يسمى جامع القمامة الموازي أيضًا PareputCollector. هذا هو جامع القمامة الافتراضي لـ JVM. على عكس جامعي القمامة التسلسلية ، فإنه يستخدم MultiTreading لجمع القمامة. وبالمثل ، فإنه يجمد أيضًا جميع مؤشرات ترابط التطبيق عند إجراء جمع القمامة
3. مارك متزامن المسح الضوئي جامع القمامة
تستخدم مجموعة Tag Tag Tag Collection المسح المتعدد مؤشرات الترابط لذاكرة الكومة ، ووضع علامات على الحالات التي تحتاج إلى تنظيف وتنظيف مثيلات ملحوظة. سوف يحتفظ جامع القمامة المتزامن فقط بجميع مؤشرات الترابط للتطبيق في الحالتين التاليتين.
عندما يكون الكائن المرجعي الموسومة في المنطقة المحملة ؛
أثناء جمع القمامة ، يتم تغيير البيانات الموجودة في ذاكرة الكومة بشكل متزامن.
يستخدم جامع القمامة المسحّب في العلامة المتزامنة المزيد من وحدة المعالجة المركزية لضمان إنتاجية البرنامج أكثر من جامعي القمامة المتوازيين. إذا تمكنا من تخصيص مزيد من وحدة المعالجة المركزية لأداء أفضل للبرنامج ، فإن الترميز المتزامن على جامع القمامة المسحور هو خيار أفضل من جامع القمامة المتزامن.
افتح جامع القمامة المسحور المتزامن عبر علامة JVM XX: + UseParnewgc.
4. G1 Colbage Collector
جامع القمامة G1 مناسب للحالات التي تكون فيها ذاكرة الكومة كبيرة. إنه يقسم ذاكرة الكومة إلى مناطق مختلفة ويجمعها القمامة بشكل متزامن. يمكن لـ G1 أيضًا ضغط مساحة ذاكرة الكومة المتبقية بعد استعادة الذاكرة. يمثل المسح المتزامن أن جامع القمامة يضغط الذاكرة في حالة STW. ستعطي مجموعة G1 Garbage أولوية للمنطقة مع معظم القمامة في القطعة الأولى.
استخدم جامع G1 Garbage عبر معلمة JVM XX:+USEG1GC
ميزات جديدة من Java8
عند استخدام جامع G1 Garbage ، استخدم معلمة JVM -xx:+UsestringDedupplication. يمكننا تحسين ذاكرة الكومة عن طريق إزالة السلاسل المكررة والحفاظ على char واحد فقط []. تم تقديم هذا الخيار في Java8u20.
لقد قدمنا جميع جامعي القمامة الأربعة Java ، والتي يجب استخدامها بناءً على سيناريوهات التطبيق وأداء الأجهزة ومتطلبات الإنتاجية.
تكوين JVM لجمع القمامة
ترتبط تكوينات مفتاح JVM التالية بجمع Java Garbage.
نوع جامع القمامة يعمل
| إعدادات | يصف |
|---|---|
| -xx:+useerialgc | جامع القمامة التسلسلي |
| -xx:+ustparallegc | جامع القمامة الموازي |
| -xx:+Useconcmarksweepgc | تجميع القمامة المسح الضوئي العلامة المتزامنة |
| -xx: parallelcmsthreads = | تجميع القمامة المسح الضوئي المتزامن |
| -xx:+useg1gc | G1 جامع القمامة |
التكوين الأمثل لـ GC
| إعدادات | يصف |
|---|---|
| -xms | تهيئة حجم ذاكرة الكومة |
| -xmx | أقصى قيمة ذاكرة الكومة |
| -xmn | حجم كرونيكل |
| -xx: permsize | تهيئة حجم الجيل الدائم |
| -xx: maxpermsize | الحد الأقصى لتوليد الجيل الدائم |
مثال على استخدام معلمات JVM GC
java -xmx12m -xms3m -xmn1m -xx: permsize = 20m -xx: maxpermsize = 20m -xx:+useerialgc -jar java -application.jar
لخص
ما ورد أعلاه هو كل شيء عن فهم موجز لأنواع جامعي القمامة Java في هذه المقالة ، وآمل أن تكون مفيدة للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!