ارجو المساعدة
اليوم شعرت ببطء في الحاسوب الخاص بي
قمت بتشغيل برنام مضاد الفيروسات التي قمت بصنعه مؤخراً ...
ولكن رأيت أن خادم Server البرنامج يستهلك 1.2GB من الرام وهذه مصيبة،
ما الخطأ الذي ارتكبته ليحدث هذا!!!!
اي مساعدة ستكون مفيده
اقرا اكثر في حجز المواقع وتحريرها من الذاكرة :
دائماً ارى هذه المشاكل لدى المبرمجين ... الحل استخدام doubly linked list وخوارزميه معينه لادارة هذه المواقع المحجوزه مثلا تحريرها عند الوصول الى 10 الف ملف وفحص الملفات ثم البدى من حيث وقفت
انا كنت في احدى مشاريع الجامعه ابرمج windows driver برنامج فاير وول وضيفته حمايه المستخدم وفتلره الباكتس
تخيل معي الاف الباكتس في الثانيه .. بعد المعاناة والاف ال BSOD في برمجه الدرايفرز خرجت بنتيجه انه يجب ان لانهمل الذاكره ابدا ونديرها بشكل جيد
بغض النظر كم من المساحة المتوفره كل ماقل استهلاك مساحة الذاكرة (طبعا بعدم الاستعانه بالهارد درايف او الملفات ) كل ماكان البرنامج سريع ومستجيب وقوي .
ممكن ان يكون لديك memory leak او من الممكن ان يكون البرنامج يتطلب هذا الكمية من الرام
انا كتبت برنامج يحتاج الى 7.5 جيجا رام على مدي 14 ساعة
الإشارة إلى Memory Leak هي نقطة هامة يغفل عنها الكثير من المطورين ويختلف مسبباتها من لغة لأخرى، لذلك جوجل تركز على المفهوم في تطوير تطبيقات آندرويد.
أقترح على الأخ الكريم أن يتحول إلى نمط الـ Debugging ويتابع سطراً بسطر من الكود ما الذي أدى لهذا الاستهلاك الكبير في الذاكرة.
من الممكن الملفات التي قام بفصحها لم يتم إزالتها من الذاكرة مثلاً.
كما وأقترح تجربة البرنامج على أكثر من منصة لويندوز، مثلاً تجربته على ويندوز 7 و 8 و 10 من خلال استخدام أنظمة وهمية Virtual Machine.
لديك memory leak بلا شك.
تابع عمل البرنامج من خلال الTask Manager او ما يوازيه فى الأنظمة الاخرى لتتأكد.
ثم راجع الجزء الذى يعمل بشكل دورى (الloop الرئيسية) فهناك ذاكرة لم تقم بتحريرها.
هذا النوع من البرامج الذى يعمل طوال الوقت يحتاج الى عناية خاصة و أحيانا يكون تسريب الذاكرة مختفى و قد تبحث عنه لأيام.
اذا لم تجد الleak فى الاكواد الخاصة بك فلا تستبعد ان يكون فى مكتبة من المكتبات التى استخدمتها!
عليك فى هذه الحالة ان تقوم بعزل أجزاء من الكود و تختبر البرنامج مرات و مرات.
التعليقات