تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الدرس الثاني والأربعون - ال Gc
#1
كاتب الموضوع : أحمد جمال

بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .

خلال دروسنا السابقة كنا نعرف متغيرات وفئات .. الخ ، ولكننا لم نسأل نفسنا كيف يتم تخزينها في الذاكرة ومتى يتم حذفها ، هذه الاسئلة سوف نجيب عليها في هذا الدرس من خلال مفاهيم ال Object lifetime وال GC .

عند تعريفك لكائن من فئة OBJECT FROM CLASS فإنك بالواقع تصبح ممسكاً ب refernce يشير إلى هذا الكائن الموجود في ال heap ، هذا ال reference يوجد ايضاً في stack خاص بالبرنامج .

بعد اغلاق البرنامج او انتهاء الدالة يتم حذف ال reference من ال stack ، سيكون التساؤل الطبيعي هو انه وفي هذه الحالة سوف تمتلئ الذاكرة بمئات الكائنات التي لا تجد من يشير لها ، يريحك ال garbage collector والذي يرمز له اختصاراً GC من هذا التساؤل حيث يقوم بحذف الفئات غير المستخدمة ، او في الحقيقة فهو يقوم بحذف جميع الفئات التي لم يعد بامكانك الوصول إليها من داخل البرنامج .

في ايام ال C++ كان من المفترض ان تقوم بحذف متغيراتك الغير مستخدمة اول بأول ، اما الآن مع GC فاصبحت جل المهام يتم تنفيذها دون ان تشعر .

الحالة الاكثر شيوعاً هي ان تقوم بعمل =null ، في الواقع هذا لا يعطي اشارة مباشرة لل GC لحذف كائنك من الذاكرة ، لكنه سيتم حذفه في لحظة ما لا يمكنك التحكم بها ، عندما تمتلئ الذاكرة مثلاً .
}}}}
تم الشكر بواسطة:
#2
GC :

تحتوي الفئة GC على عدد من الداول التي تمكنك من التعامل المباشر معها ، هذه هي الدوال واستخداماتها :

}}}}
تم الشكر بواسطة:
#3
Finalize() :

يمكنك هذا الحدث من اقتناص وقت حذف الكائن ، يمكنك عمل overridding له وتنفيذ بعض المهام قبل تدمير الكائن .

يتم ذلك بالشكل التالي :

C#:


كود :
class example
{
~example()
{
Console.Beep();
}
}

vb.net:


كود :
Class example
Protected Overrides Sub Finalize()
Try
Console.Beep()
Finally
MyBase.Finalize()
End Try
End Sub
End Class
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  الدرس الأول : تحميل .net 2008 ومميزات استخدامه oneyemenweb2 1 671 07-03-13, 02:04 AM
آخر رد: abdoojh
  اعلان - انتهاء الدورة - الدرس التاسع والسبعون -) RaggiTech 0 602 14-10-12, 11:23 PM
آخر رد: RaggiTech
  الدرس الثامن والسبعون - Ajax RaggiTech 2 875 14-10-12, 11:22 PM
آخر رد: RaggiTech
  الدرس السابع والسبعون - ASP.net وقواعد البيانات RaggiTech 2 910 14-10-12, 11:19 PM
آخر رد: RaggiTech
  الدرس السادس والسبعون - ASP.net - الجزء الثالث RaggiTech 7 1,162 14-10-12, 11:14 PM
آخر رد: RaggiTech
  الدرس الخامس والسبعون - ASP.net - الجزء الثاني RaggiTech 5 1,317 14-10-12, 11:07 PM
آخر رد: RaggiTech
  الدرس الرابع والسبعون - ASP.net RaggiTech 6 1,091 14-10-12, 10:58 PM
آخر رد: RaggiTech
  الدرس الثالث والسبعون - مقدمة إلى تطوير المواقع RaggiTech 4 850 14-10-12, 10:44 PM
آخر رد: RaggiTech
  الدرس الثاني والسبعون - مقدمة إلى Mono RaggiTech 0 596 14-10-12, 10:37 PM
آخر رد: RaggiTech
  الدرس الواحد والسبعون - XML Commenting RaggiTech 2 794 14-10-12, 10:35 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم