هل سمعت من قبل بجامع النفايات Garbage Collector؟
منذ بدايات تعلمي للجافا أخبرني أستاذي بأن لا أشغل بالي كثيراً بما يحدث بذاكرة الحاسب العشوائية عندما أكتب شفراتي البرمجية.
عندما تبدأ تعلم البرمجة و قبل أن تعلم ماذا توفر لك لغة البرمجة يعمل الخيال عمله. كلّ شخص يتوقع شيئاً معيناً قد يستطيع الحاسب فعله، أما لدي فكان خيالي يذهب في إتجاه التحكم الشامل في معدات الحاسب عن طريق أسطر البرمجة. مثل أن أجعل الذاكرة تنمحي تماماً أو أن أجعل الحاسب يعمل بأمر برمجي عن بعد و غيرها من الأفكار.
لن أقول أنها أحلام واهية لأن أغلبها كان قابلاً للتطبيق..
من هذه الأحلام كان التحكم في الذاكرة، لذا عندما علمتُ بأن هناك شيئاً ما في لغة الجافا يؤدي ما كنتُ أتوقع أني أستطيع القيام به لم أنسى إسمه منذ أن سمعته..
إنّهُ جامعُ النفايات Garbage Collector
إسم جامع النفايات ربما يكونُ مُبهماً إلى حد ما، بلا شك، و لكنّهُ يصف ما ما يفعلهُ فعلاً، إنه يجمع “مخلفات” المتغيرات التي يعرفها المبرمج أو البرنامج.
بإختلاف نوع النفايات طبعاً.
لن تستطيع أن تتخيل حياتك البرمجية و أنت تستخدم الجافا و جامع النفايات مشغولٌ عنك: كلما عرّفت متغيراً يجب أن تضع ببالك أن تحرر الذاكرة من هذا المتغير فور ما تنتهي حاجتك له!
ليس بهذه البساطة أيضاً، فعندما يحتوي البرنامج على عدة أصناف Classes، فيجب أن تتأكد أن هذا المتغير لن يتم إستخدامه في أي صنف آخر أو أي مكان من البرنامج حتى تستطيع تحريره، و كنتيجة حتمية لن يعمل البرنامج كما يجب إذا أخطأت في متغير واحد.
اطلع على كيف تتفادى الأخطاء الخفيّة أثناء البرمجة: ثأرُها صعب!
جامع النفايات يؤدي مهمة محددة عن طريق عمليات معرّفة مسبقاً للتخلص من المتغيرات و الأصناف و الدوال التي تم تعريفها و لم يعد البرنامج بحاجة إليها حتى نهاية تنفيذه، كما يُدير جامع النفايات إحلال المتغيرات في مكانها الصحيح بالذاكرة لتوفير ذاكرة أكثر و برنامج يعمل بكفاءة أكثر.
من الجميل بلا شك مشاهدة كيف يعمل جامع النفايات، و هذا ما ستستطيع مشاهدته اليوم.
إخراج جامع النفايات من مخبئه
لمشاهدة كيف يعمل جامع النفايات إتبع الخطوات التالية
- إفتح شاشة سطر الأوامر Command Line عن الضغط على علامة ويندوز و الحرف R في نفس الوقت.
- اكتب cmd ثم اضغط موافق.
- إنتقل إلى مجلد bin في بيئة الجافا عن طريق الأمر cd.
cd C:\Program Files\Java\jdk1.7.0_80\bin
- شغل آلة جافا الإفتراضية JVM عن طريق تنفيذ الأمر Jvisualvm
- إنتظر قليلاً لإكتمال فتح شاشة آلة جافا الافتراضية ثم إنتقل إلى Plugins
- إنتقل إلى شاشة available plugins ثم إختر جامع النفايات visual GC ثم اضغط على تنصيب Install أسفل الشاشة.
- إضغط على التالي ثم انتظر إكتمال التنصيب
- بإكتمال التنصيب إضغط على إنهاء
- عُد إلى الشاشة الرئيسية لآلة جافا الإفتراضية ثم اختر جامع النفايات المرئي Visual GC
هكذا تستطيع مشاهدة الذاكرة التي يديرها جامع النفايات و الأقسام التي يستخدمها و أحجامها كما تستطيع متابعة ماذا يحدث عند تشغيل احد البرامج!
مثلاً، هذا ما حدث عند تشغيل برنامج نتبينز Netbeans
بكل تأكيد تبدو هذه الأقسام مبهمة، إذا لم تكن تعرف ما هي هذه الأقسام و كيف يعمل جامع النفايات تابع مدونة علوم حتى أكتب فيها عن طريقة عمل جامع النفايات.
وجود garbage collector ضروري ..فهي تخفف الأعباء على الذاكرة العشوائية فالجافا لا تدعم توزيع الذاكرة بشكل صريح
فعلاً، هذه من أهم المميزات التي جعلت لجافا مركزاً متقدماً بين لغات البرمجة و أساس تفضيل لكثير من مبرمجي c++.