วิธีค้นหาและแก้ไขหน่วยความจำรั่วใน Windows 10

How Find Fix Memory Leaks Windows 10



หากพีซี Windows 10 ของคุณประสบปัญหาด้านประสิทธิภาพ อาจเป็นเพราะหน่วยความจำรั่ว ต่อไปนี้เป็นวิธีค้นหาและแก้ไขหน่วยความจำรั่วใน Windows 10 เมื่อคุณติดตั้ง Windows 10 เป็นครั้งแรก คุณควรเรียกใช้ System File Checker การดำเนินการนี้จะตรวจสอบและแก้ไขไฟล์ระบบที่เสียหาย ในการทำเช่นนี้ ให้เปิด Command Prompt แล้วพิมพ์: sfc /scannow เมื่อการสแกนเสร็จสิ้น ให้รีสตาร์ทพีซีของคุณ หากคุณยังคงพบปัญหาด้านประสิทธิภาพ ถึงเวลาตรวจสอบการรั่วไหลของหน่วยความจำแล้ว ในการทำเช่นนี้ให้เปิดตัวจัดการงานและไปที่แท็บประสิทธิภาพ ภายใต้คอลัมน์หน่วยความจำ คุณจะเห็นจำนวนหน่วยความจำที่ใช้ หากตัวเลขนี้เพิ่มขึ้นอย่างต่อเนื่อง เป็นไปได้ว่าคุณมีหน่วยความจำรั่ว ในการแก้ไขปัญหาหน่วยความจำรั่ว คุณต้องระบุว่าโปรแกรมใดเป็นสาเหตุของปัญหา ในการดำเนินการนี้ ให้ไปที่แท็บรายละเอียดและตรวจสอบคอลัมน์ PID นี่จะแสดง PID (รหัสกระบวนการ) ของแต่ละโปรแกรมที่กำลังทำงานอยู่ ค้นหาโปรแกรมที่มีหมายเลข PID สูงสุดและสิ้นสุดกระบวนการนั้น เมื่อคุณสิ้นสุดกระบวนการแล้ว ให้รีสตาร์ทพีซีของคุณแล้วตรวจดูว่าปัญหาได้รับการแก้ไขแล้วหรือไม่ ถ้าไม่ ทำซ้ำขั้นตอนจนกว่าคุณจะพบผู้กระทำผิด



ถึง หน่วยความจำรั่ว คือการจัดสรรทรัพยากรในโปรแกรมคอมพิวเตอร์อย่างไม่ถูกต้องเนื่องจากการจัดสรรหน่วยความจำที่ไม่เหมาะสม มันเกิดขึ้นเมื่อ ไป พื้นที่ที่ไม่ได้ใช้ยังคงไม่ถูกปล่อย หน่วยความจำรั่วไม่ควรสับสนกับการรั่วไหลของพื้นที่ ซึ่งหมายถึงโปรแกรมที่ใช้ RAM มากกว่าที่ต้องการ มีรายงานว่าหน่วยความจำรั่วบนระบบ Windows 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. Kernel32 API สำหรับจัดเก็บหน่วยความจำเคอร์เนลสำหรับแอปพลิเคชัน ตัวอย่าง: CreateFile, CreateThread
  4. API User32 และ API Gdi32

การป้องกันการรั่วไหลของหน่วยความจำ

เราทุกคนทราบดีว่าการป้องกันดีกว่าการรักษา ดังนั้น ต่อไปนี้เป็นวิธีป้องกันความจำรั่ว

การตรวจสอบนิสัย

หน่วยความจำรั่วไหลใน Windows 10

Google ชีตแบ่งข้อความเป็นคอลัมน์

คุณต้องระวังการใช้ RAM ที่ผิดปกติของแต่ละโปรแกรมและแอปพลิเคชัน คุณสามารถไปที่ Windows Task Manager ได้โดยคลิก CTRL + SHIFT + ESC และเพิ่มคอลัมน์เช่น Handles, User Objects, GDI Objects เป็นต้น

สิ่งนี้จะช่วยให้คุณติดตามการใช้ทรัพยากรได้อย่างง่ายดาย

เครื่องมือของ Microsoft สำหรับวินิจฉัยการรั่วไหลของหน่วยความจำ

เครื่องมือต่างๆ วินิจฉัยการรั่วไหลของหน่วยความจำสำหรับโหมดการจัดสรรที่แตกต่างกัน:

  1. ตัวตรวจสอบแอปพลิเคชันจะวินิจฉัยการรั่วไหลของฮีป
  2. UMDH (ส่วนประกอบของ Windows Debugging Tools) วินิจฉัยการรั่วไหลของกระบวนการโดยการตรวจสอบการจัดสรรฮีป
  3. ติดตามการจับภาพเพื่อวิเคราะห์การใช้ RAM อย่างละเอียด
  4. Xperf ยังติดตามรูปแบบการจัดสรรฮีป
  5. CRT Debug Heap ไม่เพียงแต่ติดตามการจัดสรรฮีปเท่านั้น แต่ยังช่วยให้คุณใช้เทคนิคการเข้ารหัสเพื่อลดการรั่วไหลได้อีกด้วย
  6. JavaScript Memory Leak Detector แก้ปัญหาการรั่วไหลของหน่วยความจำในโค้ด

เคล็ดลับการใช้งาน

  1. ใช้เคอร์เนล รับมือกับ s และตัวชี้อัจฉริยะอื่นๆ สำหรับทรัพยากร Win32 และการจัดสรรฮีป
  2. รับคลาสสำหรับการจัดการทรัพยากรอัตโนมัติสำหรับการจัดสรรหลักจากไลบรารี ATL มาตรฐาน C++ มี auto_ptr สำหรับการจัดสรรฮีป
  3. สรุปพอยน์เตอร์อินเทอร์เฟซ COM ใน 'พอยน์เตอร์อัจฉริยะ' ด้วย _com_ptr_t หรือ _bstr_t หรือ _variant_t .
  4. ตรวจสอบรหัส .NET สำหรับการใช้หน่วยความจำที่ผิดปกติ
  5. หลีกเลี่ยงเส้นทางออกหลายทางสำหรับฟังก์ชันเพื่อให้การจัดสรรตัวแปรในบล็อกส่วนใหญ่ว่างเมื่อสิ้นสุดฟังก์ชัน
  6. ใช้ข้อยกเว้นที่กำหนดเองหลังจากการจัดสรรทั้งหมดในบล็อก _finally ว่างแล้วเท่านั้น รวมฮีปทั้งหมดและจัดการกับการจัดสรรเป็นตัวชี้อัจฉริยะเพื่อใช้ข้อยกเว้น C ++
  7. โทร.ได้ตลอด PropVariantClear ก่อนเริ่มต้นใหม่หรือลบวัตถุ PROPVARIANT

แก้ไขการรั่วไหลของหน่วยความจำใน Windows

เช่นเดียวกับวิธีต่างๆ ในการป้องกันหน่วยความจำรั่ว มีวิธีต่างๆ ในการป้องกันหน่วยความจำรั่ว แต่ก่อนที่จะเริ่มอย่าลืม สร้างจุดคืนค่าระบบก่อน .

1] ปิดกระบวนการและเริ่มต้นใหม่

หากคุณเห็นกระบวนการที่ไม่จำเป็นใช้ RAM มากเกินไป คุณสามารถจบกระบวนการในตัวจัดการงาน คุณจะต้องรีบูตอุปกรณ์เพื่อให้พื้นที่ว่างพร้อมใช้งานสำหรับกระบวนการอื่นๆ หากไม่มีรีบูต ปัญหาหน่วยความจำรั่วจะไม่ได้รับการแก้ไข กระบวนการหนึ่งที่มีข้อบกพร่องที่ทำให้พีซีช้าลงคือ Runtime Broker ลองดูว่าเพียงแค่ปิดการใช้งานนี้

2] เครื่องมือวิเคราะห์หน่วยความจำ

การวินิจฉัยหน่วยความจำของ Windows

เพื่อเข้าใช้งานบิ้วอิน เครื่องมือวิเคราะห์หน่วยความจำ สำหรับ Windows:

แอพจดบันทึก windows 10
  1. บันทึกงานสำคัญทั้งหมดของคุณ
  2. คลิก วิน + อาร์ เปิด วิ่ง หน้าต่าง.
  3. ป้อนคำสั่ง mdsched.exe ใน วิ่ง หน้าต่าง.
  4. รีสตาร์ทเครื่องคอมพิวเตอร์ของคุณ
  5. หลังจากรีสตาร์ท ทำการสแกนพื้นฐานหรือเลือก ' ขั้นสูง 'ตัวเลือกเช่น' ทดสอบส่วนผสม ' หรือ ' จำนวนครั้งที่ผ่าน '.
  6. คลิก F10 เพื่อเริ่มการทดสอบ

นี่เป็นการแก้ไขชั่วคราวในตอนนี้

3] ตรวจสอบการอัปเดตไดรเวอร์

อัพเดตซอฟต์แวร์ไดรเวอร์

ไดรเวอร์ที่ล้าสมัยทำให้หน่วยความจำรั่วไหล อัปเดตไดรเวอร์ทั้งหมด :

  1. คลิก วิน + อาร์ และเปิด วิ่ง หน้าต่าง. พิมพ์ devmgmt.msc แล้วกด Enter ซึ่งจะพาคุณไป ตัวจัดการอุปกรณ์ .
  2. ตรวจสอบไดรเวอร์ที่ล้าสมัยและอัปเดตทั้งหมด
  3. สำหรับการอัปเดตที่คุณอาจพลาดไป โปรดดูที่ Windows Update

มันง่าย.

4] การเพิ่มประสิทธิภาพ

ปรับเพื่อประสิทธิภาพที่ดีที่สุด

การปรับแต่งประสิทธิภาพของ Windows จะจัดการทุกอย่างรวมถึงการกำหนดเวลา cpu และการใช้หน่วยความจำเพื่อป้องกันการรั่วไหลของหน่วยความจำ ทำตามขั้นตอนเหล่านี้:

  1. คลิกขวา ' พีซีเครื่องนี้ »และเลือก« ขั้นสูง 'บนแผงด้านซ้าย
  2. ภายใต้ ' ขั้นสูง บนแท็บ ' การแสดง
โพสต์ยอดนิยม