ابحث عن Memory Leaks وأصلحها في نظام التشغيل Windows 10

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

تسرب الذاكرة في نظام التشغيل Windows 10

قبل أن تبدأ ، يجب أن تعلم أن تسرب الذاكرة هو مشكلة برمجية يجب تصحيحها - على سبيل المثال في Java و JavaScript و C / C ++ و Windows وما إلى ذلك. لا يلزم استبدال ذاكرة الوصول العشوائي أو القرص الثابت فعليًا.

تسرب الذاكرة في نظام التشغيل Windows 10

لماذا هو سيء

من الواضح أن تسرب الذاكرة أمر سيء لأنه خطأ ، خلل في النظام. لكن دعنا نتعرف على كيفية تأثيره بالضبط على النظام:

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

لتحديد تسرب الذاكرة ، يحتاج المبرمج إلى الوصول إلى الكود المصدري للبرنامج.

تحديد مكان التسرب

لحل مشكلة ما ، علينا تحديدها أولاً. الخطوات الأساسية لتحديد موقع تسرب الذاكرة هي:

  1. تأكيد : تحديد ما إذا كان قد حدث تسرب أم لا.
  2. البحث عن تسرب للذاكرة في وضع Kernel : تحديد موقع تسرب ناتج عن مكون برنامج تشغيل وضع kernel.
  3. البحث عن تسرب للذاكرة في وضع المستخدم : تحديد موقع تسرب ناتج عن برنامج تشغيل أو تطبيق في وضع المستخدم.

تخصيص الذاكرة

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

  1. وظيفة HealAlloc لتخصيص ذاكرة الكومة. مكافئات وقت تشغيل C / C ++ هي malloc والجديدة.
  2. وظيفة VirtualAlloc للتخصيص المباشر من نظام التشغيل.
  3. واجهات برمجة تطبيقات Kernel32 للاحتفاظ بذاكرة kernel للتطبيق. مثال ، CreateFile ، CreateThread.
  4. واجهات برمجة تطبيقات User32 و Gdi32 APIs.

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

نعلم جميعًا أن الوقاية خير من العلاج ، لذا إليك بعض الطرق لمنع تسرب الذاكرة.

عادات المراقبة

تسرب الذاكرة في نظام التشغيل Windows 10

تحتاج إلى مراقبة الاستخدام غير الطبيعي لذاكرة الوصول العشوائي بواسطة البرامج والتطبيقات الفردية. يمكنك الانتقال إلى Windows Task Manager بالضغط على CTRL + SHIFT + ESC وإضافة الأعمدة مثل المقابض وكائنات المستخدم وكائنات GDI وما إلى ذلك.

سيساعدك هذا على مراقبة استخدام الموارد بسهولة.

أدوات Microsoft لتشخيص تسرب الذاكرة

أدوات مختلفة لتشخيص تسرب الذاكرة لأنماط التخصيص المختلفة:

  1. تقوم أداة التحقق من التطبيق بتشخيص تسرب الكومة.
  2. يقوم UMDH (أحد مكونات Windows Debugging Tools) بتشخيص التسريبات للعمليات الفردية من خلال مراقبة عمليات تخصيص ذاكرة الكومة.
  3. تتبع Capture لتحليل شامل لاستخدام ذاكرة الوصول العشوائي.
  4. يتتبع Xperf أيضًا أنماط تخصيص الكومة.
  5. لا يتتبع كومة تصحيح CRT عمليات تخصيص الكومة فحسب ، بل تتيح أيضًا ممارسات الترميز لتقليل التسريبات.
  6. JavaScript Memory Leak Detector يصحح تسرب الذاكرة في الرموز.

نصائح الاستخدام

  1. استخدم kernel HANDLE s ومؤشرات ذكية أخرى لموارد Win32 وتخصيصات الكومة.
  2. احصل على فئات لإدارة الموارد التلقائية لتخصيصات kernel من مكتبة ATL. يحتوي معيار C ++ على auto_ptr لتخصيصات الكومة.
  3. قم بتغليف مؤشرات واجهة COM داخل "المؤشرات الذكية" بمساعدة _com_ptr_t أو _bstr_t أو _variant_t .
  4. مراقبة كود .NET للاستخدام غير الطبيعي للذاكرة.
  5. تجنب مسارات الخروج المتعددة للوظائف للسماح بتحرير التخصيصات من المتغيرات في معظم الكتل بنهاية الوظيفة.
  6. استخدم الاستثناءات الأصلية فقط بعد تحرير كافة التخصيصات في الكتلة _finally. قم بلف كل الكومة ومعالجة التخصيصات في المؤشرات الذكية لاستخدام استثناءات C ++.
  7. قم دائمًا باستدعاء الوظيفة PropVariantClear قبل إعادة تهيئة كائن PROPVARIANT أو تجاهله .

استكشاف مشاكل تسرب الذاكرة في Windows وإصلاحها

تمامًا مثل الطرق المختلفة لمنع تسرب الذاكرة ، توجد طرق مختلفة لوقف تسرب الذاكرة. ولكن قبل أن تبدأ ، تذكر إنشاء نقطة استعادة للنظام أولاً.

1] أغلق العمليات وأعد تشغيلها.

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

2] أدوات تشخيص الذاكرة

تشخيصات ذاكرة Windows

للوصول إلى أداة تشخيص الذاكرة المدمجة لنظام التشغيل Windows:

  1. احفظ كل عملك المهم.
  2. اضغط على Win + R لفتح نافذة Run .
  3. اكتب الأمر mdsched.exe في نافذة التشغيل .
  4. أعد تشغيل الكمبيوتر.
  5. بعد إعادة التشغيل ، قم بإجراء فحص أساسي أو انتقل إلى الخيارات " المتقدمة " مثل " مزيج الاختبار " أو " عدد النجاح ".
  6. اضغط على F10 لبدء الاختبار.

هذه لا تزال إصلاحات مؤقتة.

3] تحقق من وجود تحديثات السائق

تحديث برنامج التشغيل

تتسبب برامج التشغيل القديمة في حدوث تسرب للذاكرة. حافظ على تحديث جميع برامج التشغيل:

  1. اضغط على Win + R وافتح نافذة Run . اكتب devmgmt.msc واضغط على Enter. سوف يأخذك إلى إدارة الأجهزة .
  2. تحقق من وجود برامج تشغيل قديمة وقم بتحديثها جميعًا.
  3. للحصول على التحديثات التي ربما فاتتك ، تحقق من Windows Update.

كان هذا بسيطًا.

4] تحسين الأداء

ضبط للحصول على أفضل أداء

سيؤدي ضبط Windows للأداء إلى إدارة كل شيء بما في ذلك جدولة المعالج واستخدام الذاكرة لإيقاف تسرب الذاكرة. اتبع هذه الخطوات:

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

إذا لم ينجح هذا الحل البسيط ، فجرّب الحل التالي.

5] تعطيل البرامج التي تعمل عند بدء التشغيل

برامج بدء التشغيل

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

  1. انتقل إلى " مدير المهام ".
  2. انتقل إلى " بدء التشغيل ".
  3. قم بتعطيل برامج بدء التشغيل التي لا تحتاج إلى تشغيلها افتراضيًا.

6] Defrag القرص الصلب

تجزئة القرص

على الرغم من أن Windows 10 يقوم بذلك تلقائيًا ، فقد تحتاج إلى إلغاء تجزئة محركات الأقراص الثابتة من حين لآخر لتحسين الأداء:

  1. انتقل إلى " هذا الكمبيوتر الشخصي " أو " جهاز الكمبيوتر ".
  2. انقر بزر الماوس الأيمن فوق محرك الأقراص الثابتة للنظام (عادةً محرك الأقراص C:).
  3. انتقل إلى " أدوات " ضمن " خصائص " وحدد " تحسين ".
  4. حدد محرك الأقراص لإلغاء التجزئة وحدد " تحليل ".

أعد تشغيل الكمبيوتر بعد التجزئة الجديدة.

7] ملف ClearPage عند الاغلاق

لقد أصبح الأمر معقدًا الآن - لكن لا تقلق. فيما يلي كيفية مسح ملف الصفحة عند كل إيقاف تشغيل:

  • اكتب regedit في البحث لتشغيل محرر التسجيل.
  • أدخل هذا المسار:
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management
  • قم بتغيير قيمة ClearPageFileAtShutDown إلى '1'.
  • احفظ التغييرات وأعد تشغيل الجهاز.

هذا يجب أن يفعل ذلك. تذكر أن عملية إيقاف التشغيل ستستغرق وقتًا أطول قليلاً.

9] تعطيل Superfetch

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

  1. ابحث عن services.msc وانتقل إلى مدير الخدمات.
  2. ابحث عن " Superfetch " وانقر عليه بزر الماوس الأيمن للانتقال إلى " خصائص ".
  3. حدد " إيقاف ".
  4. أيضًا " تعطيل " الخدمة من القائمة المنسدلة.
  5. أعد تشغيل الكمبيوتر وتحقق مما إذا كان الأداء قد تحسن.

تمكين Superfetch إذا لم ينجح هذا.

10] تحقق من وجود برامج ضارة

استخدم برنامج مكافحة فيروسات تابعًا لجهة خارجية أو برنامج Windows Defender الخاص بنظام التشغيل Windows 10 لفحص البرامج الضارة والقضاء عليها. تأكد من تحديث برنامج مكافحة الفيروسات لدعم نظام التشغيل الخاص بك حتى لا يصبح سبب تسرب الذاكرة.

كل حل قد تحتاجه للعثور على أو منع تسرب الذاكرة موجود هنا. يمكنك قراءة المزيد حول تسرب الذاكرة على MSDN و Microsoft.

Original text


تسرب الذاكرة في نظام التشغيل Windows 10