الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حل مشكلة الزيادة في إستهلاك الذاكرة

مغلق
بدأه Ahmed H. Alawady في 24 أبريل 2006 · 1 رد · 818 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

يوجد لدي برنامج وبه MainForm حيث أنها MDIContainer

وبالطبع لها ChildForms

عند فتح أي ChildForm يتم الزيادة في إستهلاك الذاكرة

وبعد فترة من فتح أكثر من ChildForm سوف يستهلك كمية كبيرة من الذاكرة

المفروض عند إغلاق بعض ChildForm يتم تقليل نسبة إستهلاك الذاكرة وهذا لا يحدث ، فتظل إستهلاك الذاكرة كما هي

مع أني أضفت السطرين التاليين عند إغلاق ChildForm في الحدث الخاص بـ OnClosed

this.Dispose();
System.GC.Collect();

ومع ذلك لا يتم تقليل إستهلاك الذاكرة لدي ابدا ولو بشعرة ، ارجوا المساعدة

لأن على المفروض البرنامج أن يعمل تقريبا 12 ساعة ... :(

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#2

مادامت الذاكرة الزائدة المحجوزة لا تؤدي الى مشاكل مع النظام فلن يتحرك النظام لاخلائها .. لأن عملية اخلاء الذاكرة في حد ذاتها عمليه مكلفة و لهذا فالنظام يقوم بها عند الحاجة فقط و يكتفي أحياناً في الأحوال العادية بتحويل الMemory Pages من الPhysical الى الVirtual

و يمكنك ملاحظة ذلك

1- افتح الTask Manager (اضغط المفاتيح ctrl-shift-esc) ثم من View اختر Select Columns ثم من القائمة اختار ال Virtual Memory

2- افتح أي برنامج Windows Forms مكتوب بالDotNet (أو حتى بأي لغة) ثم قم بعمل Minimize للبرنامج (و هي تقوم بعمل اخلاء لبعض الموارد في الذاكرة و التي تتعلق بالرسم و خلافه) و لاحظ الTaskManager ستجد أن حجم الPhysical Memory الخاصة بالبرنامج انخفض بمعدل ملحوظ و ستجد أن النقص في الPhysical Memory تبعه زيادة في الVirtual Memory بنفس القدر تقريباً و هو ناتج عن نقل الMemory Pages الخاصة بالبرنامج من الPhysical الى الVirtual بدلاً من تدميرها فربما يحتاجها البرنامج مرة أخرى و هذا ما سيحدث عندما تقوم بعملية Maximize و هنا ستجد أن العملية العكسية حدثت , و هكذا فان النظام لا يقوم بعملية اخلاء الموارد الا في حالة انهاء البرنامج كلياً أو حدوث نقص في الموارد في النظام مما يحتاج توفير بعد الأماكن في الذاكرة

Sr. Software Development Engineer
Hulu, LLC
My Blogs

هذا الموضوع مغلق.

مواضيع مشابهة