مفهوم تسرب الذاكرة

Share your love

تطورت المعاملات في شتى مناحي الحياة وأصبح الحاسوب هو المتحكم في الحفاظ على المعلومات وفي علوم الحاسب، هناك مميزات كثيرة وأيضا عيوب متعددة، فيعتبر تسرب الذاكرة نوع من الاستهلاك غير المتعمد للذاكرة المؤقتة الرامات، المتواجدة في الكمبيوتر، ولكن وجودها يكون عن طريق برنامج كمبيوتر يتم وضعه بشكل جيد وتقنى، حيث يفشل البرنامج في إفراغ الذاكرة بعد الانتهاء من استخدامها مما يعقد عملية حفظ المعلومات بشكل سليم ، ويرجع ذلك الأمر لأن الذاكرة لا تفقد بطبيعة الحال من الكمبيوتر، ولكنها تصبح مشغولة ويتم تجاهلها بسبب أخطاء تقنية في عمليات البرنامج المنطقية.

دلائل تسرب الذاكرة

تسرب الذاكرة لم يحدث بمحض الصدفة بل هناك تشابه كبير مع أعراض مشاكل أخرى، ولا يمكن تحليل سبب تلك الأعراض إلا بواسطة مبرمج كمبيوتر لديه وسيلة لرؤية المصدر الكود الخاص بالبرنامج، ففي كثير من الحالات ،تؤدي عملية جافا إلى استثناء وقت تشغيل البرنامج الخاص بتسريب تلك الذاكرة ، وهو مؤشر واضح على أن موارد الذاكرة قد استنفدت، و في هذه الحالة ، تحتاج إلى التمييز بين استنفاد الذاكرة العادي والتسرب. ولكن عندما يتطلب منك تطبيق جافا، مساحة تخزين أكبر من عروض كومة وقت التشغيل ، فقد يرجع ذلك إلى التصميم الضعيف.

نتائج تسرب الذاكرة 

في الحاسوب قد يمكن لتسرب الذاكرة التقليل من أداء الكمبيوتر، وضعف قدرته على القيام بوظائفه عن طريق تقليل كمية الذاكرة المتوفرة للكمبيوتر، لأنه سوف يتم توزيع الذاكرة هو أساسا مهمة من مهام نظام التشغيل، لذلك ينتج عن تسرب الذاكرة ارتفاع ملحوظ في الذاكرة المستخدمة بنظام التشغيل ككل، وليس فقط بواسطة البرنامج المخطئ، وأخيرا، في أسوء الأحوال، الكثير من الذاكرة المتوفرة يتم شغله وكل أو جزء من النظام أو الأجهزة يتوقف عن العمل بشكل صحيح أو يسقط النظام ككل.

لأنه قد لا يكون تسرب الذاكرة خطيرا أو ملحوظا بالوسائل الطبيعية في أغلب الأحيان، وذلك يعد أمرا مهما في نظم التشغيل الحديثة، الذاكرة المشغولة بواسطة برنامج يتم إفراغها عندما يغلق البرنامج، وذلك يعني أن تسرب الذاكرة بسبب برنامج يعمل لوقت قصير نادرا ما يكون خطيرا.

تسرب الذاكرة الأكثر خطورة

هناك مقياس حساس داخل الحاسوب فحين يترك البرنامج المخطئ يعمل، ويستهلك ذاكرة أكثر فأكثر مع مرور الوقت ، كاستخدام المهمات الخلفية، التي يسهل عليك الحصول عليها في خادمات الويب، ولكن أكثر في الأجهزة المضمنة والتي يمكن أن تترك تعمل لسنين عديدة مثل راوتر. وعند استخدام الحاسوب عليك إدراك أنه حين يكون البرنامج قادرا على طلب ذاكرة والتي تدعي ذاكرة مشتركة فهي لم يتم إفراغها، حتى وإن أغلق البرنامج.

التسرب بسبب نظام التشغيل

يحدث التسريب للذاكرة بسبب عدة غلطات أو استخدامات خاطئة فحين تكون الذاكرة قليلة جدا، مثال داخل نظام مضمن embedded system أو جهاز محمول، يحدث التسريب بشكل سريع ، لأن تسرب الذاكرة يعتبر فشلًا أو خللًا داخل التطبيق في البرنامج الذي يحمله، و قد يكون التسرب في الذاكرة مقصودًا أو غير مقصود من قبل التطبيق البرنامج ، والذي قد يحتفظ بالتطبيق في الذاكرة لتنفيذ العمليات أو يبقى مجمدًا في حالة لا يمكن استردادها، لكن إذا احسنت اختيار نظام التشغيل قد تتلاش الوقوع في الخطأ بشكل كبير.

مساحة الذاكرة

في البداية عندما تقوم بملئ الذاكرة الخاصة بالحاسوب ، عليك ملاحظة أن ارتفاع مساحة الذاكرة المستخدمة ليس بالضرورة دليل على تسرب بالذاكرة، ولكن بعض البرامج قد تخزن كميات من المعلومات تتطور دائما في الذاكرة، إذا أمكن تمدد الكاش في برنامج الكاش، وهذا سيحدث بشكل كبير بحيث تسبب مشاكل، وقد يكون ذلك بسبب خطأ تصميمي أو برمجي، قام به مهندس البرمجيات المسؤول عن ملئ الحاسوب وذاكرته، ولكن ليس تسرب ذاكرة، حيث إن المعلومات المخزنة تظل بشكل ضئيل مستخدمة.

وفي بعض الحالات الأخرى، قد يطلب برنامج مساحة كبيرة جدا من الذاكرة بدون سبب، وذلك لأن المبرمج قد اعتبر أن الذاكرة دائما كافية لعملية ما و قد يبدأ برنامج معالجة صور بقراءة كل محتويات الصورة وتخزينها في الذاكرة، بشكل إيجابي وهذا شيء لا يتماشى مع أي صورة كبيرة جدا تتجاوز مساحتها مساحة الذاكرة المتوفرة، فهنا عليك أن تحدد حجم الصورة المناسبة لحجم الذاكرة.

لتوضيح ذلك أكثر، فإن تسرب في الذاكرة ينتج عن نوع محدد من الأخطاء في الكود البرمجي الذي يخطئ تسلله عند عمله الدخول للحاسوب ، واذا تعقد الامر في رؤية الكود البرمجي، لا يستطيع أي شخص سوى الجزم بأن السبب يمكن أن يكون تسرب بالذاكرة، أو عمليه تمت بالخطا أتلفت الذاكرة ويكون من الأفضل استخدام مصطلح زيادة مستمرة في استهلاك الذاكرة المستخدمة، التي تظهر بشكل مباشر عند الملئ الخاطئ، و حينما لا توجد معرفة بالسبب الحقيقي.

مصطلح تسرب الذاكرة بالتحديد

تسرب الذاكرة مصطلح له معنى محدد لا مجال للخروج عنه فهو مستسهل بعض الشيء ولكن في ذلك الأمر قد يجد صعوبة بالغة عندما يستخدمه غير المبرمجين خاصة قد يتعلقوا به ويستخدمونه في حالات للذاكرة ليس لها أي علاقة بتسرب الذاكرة، فهنا تعد برمجه الذاكرة بلغة سي ، يتعمد تسريب الذاكرة عن طريق فقد المؤشر للذاكرة الموزعة، والمسؤول عن تخزينها وتفريغها بشكل متوازٍ، ولأن المهندس المبرمج يستمر في العمل دائما باستدعاء الوظيفة الناقصة في الكود، ولكن في النهاية سيتوقف البرنامج عن العمل عندما لا تتوفر مساحة بالذاكرة فارغة.

تسرب ذاكرة الانترنت

يعد وجود برنامج دلفي ، بالحاسوب جامع القمامة وتدير معظم المهام المتعلقة بالذاكرة، فمن الممكن أن يكون تسرب الذاكرة في تطبيقات النت، فعليك الحفاظ على جميع التطبيقات التي تضم الذاكرة والمسؤله عن ملئها.

مواجهة تسربات الذاكرة

كتابة التعليمات البرمجية تضمن للمستخدم دائما علي المدى البعيد ذاكرة آمنة بوحداتها، مما يساعد علي إتمام عملية منع تسرب الذاكرة فيمكن أن يتم ذلك النجاح عن طريق استخدام بعض أدوات خارجية المتاحة، ودلفي تسرب الذاكرة أدوات الإصلاح تساعدك على التقاط تطبيق دلفي أخطاء مثل تلف الذاكرة، تسرب الذاكرة، والأخطاء تخصيص الذاكرة، بمعنى ذلك أن تسرب الذاكرة ليس فوضويًا ويمكن إصلاحه بسهولة أكبر مما نتخيل .

وغالبًا ما تتضمن تطبيقات تطوير البرامج أدوات تصحيح الأخطاء التي يمكنها فحص البرامج بحثًا عن تسرب للذاكرة، ومنها نستطيع ان تتلاشى الخطأ والوقوع في تسريب المعلومات التي تحملها الذاكرة ولكن بمجرد العثور على مصدر التسرب ، يمكن للمبرمج تعديل الكود بحيث يستخدم البرنامج الذاكرة بشكل أكثر كفاءة، ولكن إذا كنت تستخدم برنامجًا يحتوي على تسرب للذاكرة ، فيمكنك إصلاح المشكلة مؤقتًا بمجرد إنهاء البرنامج وفتحه مرة أخرى، بمعنى أن تقوم بغلق البرنامج وإعادة تشغيله مرة أخرى بشكل سريع، حتى يتم تخصيص الذاكرة تلقائيًا إلى النظام.[1]

  • Memory Leak
Source: almrsal.com
شارك

اترك ردّاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

Stay informed and not overwhelmed, subscribe now!