מצא ותקן דליפות זיכרון ב- Windows 10

זיכרון הדליפה היא שגויה של משאב בתוכנת מחשב בשל הקצאת זיכרון לקויה. זה קורה כאשר מיקום RAM שאינו בשימוש נותר לא פורסם. אין לבלבל בין דליפת זיכרון לבין דליפת חלל, המתייחסת לתוכנית המשתמשת בזיכרון RAM רב יותר מהנדרש. מספרים כי דליפת זיכרון במערכת חלונות 10/8/7 התרחשה כאשר הזיכרון פשוט אינו נגיש למרות שאינו בשימוש.

דליפות זיכרון ב- Windows 10

לפני שתתחיל, עליך לדעת שדליפת זיכרון היא בעיה בתוכנה שניתנת לניפוי באגים - למשל ב- Java, JavaScript, C / C ++, Windows וכו '. אין צורך בהחלפת זיכרון RAM או דיסק קשיח.

דליפת זיכרון ב- Windows 10

למה זה רע

ברור שזליגת זיכרון היא גרועה מכיוון שמדובר בבאג, פגם במערכת. אבל בואו נגלה איך זה בדיוק משפיע על המערכת:

  1. מכיוון שהזיכרון אינו משוחרר גם כאשר אינו בשימוש, הוא גורם לדלדול הזיכרון.
  2. מיצוי הזיכרון גורם להזדקנות תוכנה.
  3. זיכרון זמין מופחת מוביל לזמן תגובה מוגבר ולביצועים ירודים של המערכת.
  4. דליפת זיכרון שלא נבדקה עלולה בסופו של דבר להתרסק של יישום.

על מנת לזהות דליפת זיכרון, על מתכנת להיות בעל גישה לקוד המקור של התוכנית.

איתור הדליפה

על מנת לפתור בעיה, עלינו לזהות אותה תחילה. השלבים הבסיסיים לאיתור דליפת זיכרון הם:

  1. אישור : קביעת דליפה.
  2. איתור דליפת זיכרון במצב ליבה : איתור דליפה הנגרמת על ידי רכיב מנהל התקן במצב ליבה.
  3. איתור דליפת זיכרון במצב משתמש : איתור דליפה הנגרמת על ידי מנהל התקן או אפליקציה במצב משתמש.

הקצאת זיכרון

ישנם מצבים שונים בהם יישומים מקצים זיכרון RAM. אם החלל לא מתפנה לאחר השימוש, דליפת הזיכרון תתרחש ללא קשר לאופן ההקצאה. כמה דפוסי הקצאה נפוצים הם:

  1. פונקציית HealAlloc להקצאת זיכרון ערימה. מקבלי זמן הריצה C / C ++ הם malloc וחדשים.
  2. פונקציית VirtualAlloc להקצאה ישירה ממערכת ההפעלה.
  3. ממשקי API של Kernel32 להחזקת זיכרון הליבה לאפליקציה. דוגמה, CreateFile, CreateThread.
  4. ממשקי API של User32 ו- API של Gdi32.

מניעת דליפות זיכרון

כולנו יודעים שמניעה טובה יותר מריפוי ולכן הנה כמה דרכים למנוע דליפת זיכרון.

הרגלי מעקב

דליפות זיכרון ב- Windows 10

עליכם לפקוח על שימוש חריג ב- RAM על ידי תוכניות ויישומים בודדים. אתה יכול לעבור למנהל המשימות של Windows על ידי לחיצה על CTRL + SHIFT + ESC ולהוסיף את העמודות כמו ידיות, אובייקטים של משתמשים, אובייקטים של GDI וכו '.

זה יעזור לך לעקוב בקלות אחר השימוש במשאבים.

כלים של מיקרוסופט לאבחון דליפות זיכרון

כלים שונים מאבחנים דליפות זיכרון במצבי הקצאה שונים:

  1. מאמת היישומים מאבחן דליפות ערימה.
  2. UMDH (רכיב בכלי איתור באגים של Windows) מאבחן דליפות לתהליכים בודדים על ידי ניטור הקצאות זיכרון ערימה.
  3. לכידת מעקב לניתוח יסודי של השימוש ב- RAM.
  4. גם Xperf עוקב אחר דפוסי הקצאת ערימה.
  5. CRT Debug Heap לא רק עוקב אחר הקצאות ערימה אלא גם מאפשר שיטות קידוד כדי למזער נזילות.
  6. גלאי דליפת זיכרון ב- JavaScript מנקה באגים דליפות זיכרון בקודים.

טיפים לשימוש

  1. השתמש ב- HANDLE ליבות ובמצביעים חכמים אחרים כאלה למשאבי Win32 והקצאות ערימה.
  2. קבל שיעורים לניהול משאבים אוטומטי להקצאת גרעינים מספריית ATL. בתקן C ++ יש auto_ptr להקצאות ערימה.
  3. הקפידו על מצביעי ממשק COM בתוך "מצביעים חכמים" בעזרת _com_ptr_t או _bstr_t או _variant_t .
  4. עקוב אחר קוד .NET לצורך שימוש לא תקין בזיכרון.
  5. הימנע ממספר נתיבי יציאה לפונקציות כדי לאפשר הקצאות להשתחרר ממשתנים ברוב הבלוקים בסוף הפונקציה.
  6. השתמש בחריגים מקוריים רק לאחר שחרור כל ההקצאות בחסימה _ סופית. עוטפים את כל הערמות ומטפלים בהקצאות למצביעים חכמים על מנת להשתמש בחריגות C ++.
  7. התקשר תמיד לפונקציה PropVariantClear לפני איפוס מחדש או השלכה של אובייקט PROVARIANT.

פתרון בעיות דליפות זיכרון ב- Windows

בדיוק כמו הדרכים השונות למניעת דליפות זיכרון, ישנן דרכים שונות לעצור דליפות זיכרון. אך לפני שתתחיל, זכור ליצור קודם נקודת שחזור מערכת.

1] סגור תהליכים והפעל מחדש.

אם אתה רואה שתהליך מיותר לוקח יותר מדי זיכרון RAM, אתה יכול לסיים את התהליך במנהל המשימות. יהיה עליך להפעיל מחדש את ההתקן כך שהשטח הפנוי יהיה זמין לשימוש על ידי תהליכים אחרים. ללא בעיה מחדש של דליפת זיכרון לא תיפתר. תהליך מסוים אחד שיש בו באגים כדי להאט את המחשב האישי הוא Runtime Broker. נסה אם השבתה זו בלבד עובדת.

2] כלי אבחון זיכרון

אבחון זיכרון של Windows

כדי לגשת לכלי אבחון הזיכרון המובנה עבור Windows:

  1. שמור את כל העבודה החשובה שלך.
  2. לחץ על Win + R כדי לפתוח את חלון ההפעלה .
  3. הקלד את הפקודה mdsched.exe ב Run חלון.
  4. הפעל מחדש את המחשב האישי.
  5. לאחר הפעלה מחדש, בצע סריקה בסיסית או עבור לאפשרויות ' מתקדמות ' כמו ' תערובת בדיקות ' או ' ספירת מעברים '.
  6. לחץ על F10 כדי להתחיל בבדיקה.

אלה עדיין תיקונים זמניים.

3] בדוק אם קיימים עדכוני מנהל התקן

עדכן תוכנת מנהל התקן

מנהלי התקנים מיושנים גורמים לדליפות זיכרון. עדכן את כל הנהגים:

  1. לחץ על Win + R ופתח את חלון ההפעלה . הקלד devmgmt.msc ולחץ על Enter. זה ייקח אותך אל מנהל ההתקנים .
  2. בדוק אם קיימים מנהלי התקנים מיושנים ועדכן את כולם.
  3. לקבלת עדכונים שאולי פספסת, עיין ב- Windows Update.

זה היה פשוט.

4] מיטוב הביצועים

התאם לביצועים הטובים ביותר

התאמת Windows לביצועים תנהל את הכל כולל תזמון מעבד ושימוש בזיכרון כדי לעצור דליפות זיכרון. בצע את השלבים הבאים:

  1. לחץ לחיצה ימנית על ' מחשב זה ' ובחר הגדרות ' מתקדם ' בחלונית השמאלית.
  2. בכרטיסייה ' מתקדם ' עבור אל ' ביצועים ', ואחריו ' הגדרות '.
  3. סמן ' התאם לביצועים הטובים ביותר ' ולחץ על אישור .
  4. הפעל מחדש ובדוק אם הבעיה נפתרה.

אם פתרון פשוט זה לא עבד, נסה את הפיתרון הבא.

5] השבת תוכניות הפועלות בהפעלה

תוכניות הפעלה

השבתת התוכניות המטרידות היא הדרך היחידה להיפטר מבעיית דליפת הזיכרון. עבור אל מנהל המשימות והשבית את תוכנית הבעיות. אם אינך יודע אילו תוכניות יוצרות את הבעיה, עשה זאת:

  1. עבור אל ' מנהל המשימות '.
  2. עבור אל ' הפעלה '.
  3. השבת את תוכניות ההפעלה שאינך צריך להפעיל כברירת מחדל.

6] דחה את הכונן הקשיח

איחוי דיסק

למרות ש- Windows 10 עושה זאת עבורך באופן אוטומטי, ייתכן שתצטרך לבצע איחוי של הכוננים הקשיחים מדי פעם כדי לייעל את הביצועים:

  1. עבור אל ' מחשב זה ' או ' המחשב שלי '.
  2. לחץ לחיצה ימנית על הכונן הקשיח של המערכת (בדרך כלל C: כונן).
  3. עבור אל ' כלים ' תחת ' מאפיינים ' ובחר ' מיטוב '.
  4. בחר בכונן לאיחוי ובחר ' ניתוח '.

הפעל מחדש את המחשב לאחר הפיצול החדש.

7] קובץ ClearPage בעת כיבוי

זה נהיה מורכב עכשיו - אבל אל תדאג. כך נקה את קובץ הדף בכל כיבוי:

  • הקלד regedit בחיפוש כדי להפעיל את עורך הרישום.
  • הזן נתיב זה:
HKEY_LOCAL_MACHINESYSTEM CurrentControlSetControlSession Manager ניהול זיכרון
  • שנה את הערך של ClearPageFileAtShutDown ל- '1'.
  • שמור את השינויים והפעל מחדש את המכשיר.

זה צריך לעשות את זה. זכור שתהליך הכיבוי שלך ייקח קצת יותר זמן.

9] השבת Superfetch

שירות Windows זה מייעל את הביצועים על ידי מזעור זמן האתחול. זה מאפשר ל- Windows לנהל את השימוש ב- RAM. החיים לאחר השבתת Superfetch אינם נוחים, אך עשו זאת אם עליכם. לפחות נסה זאת לבד כדי לבודד את הבעיה:

  1. חפש services.msc ועבור למנהל השירותים.
  2. חפש את ' Superfetch ' ולחץ עליו באמצעות לחצן העכבר הימני כדי לעבור ל'מאפיינים '.
  3. בחר ' עצור '.
  4. כמו כן, ' השבת ' את השירות מהתפריט הנפתח.
  5. הפעל מחדש את המחשב ובדוק אם הביצועים השתפרו.

אפשר Superfetch אם זה לא עובד.

10] בדוק אם קיימת תוכנה זדונית

השתמש בתוכנת אנטי-וירוס של צד שלישי או ב- Windows Defender הביתי של Windows 10 כדי לסרוק ולהעלים תוכנות זדוניות. ודא שהאנטי-וירוס מעודכן כדי לתמוך במערכת ההפעלה שלך כך שהוא לא יהפוך בסופו של דבר לדליפת הזיכרון.

כל פיתרון שתצטרך למצוא או למנוע דליפות זיכרון נמצא כאן. תוכלו לקרוא עוד על דליפות זיכרון ב- MSDN וב- Microsoft.

Original text


דליפות זיכרון ב- Windows 10