หากพีซี 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 หรือฮาร์ดไดรฟ์
ทำไมถึงแย่
เห็นได้ชัดว่าหน่วยความจำรั่วเป็นสิ่งที่ไม่ดี เพราะมันเป็นบั๊ก ข้อบกพร่องของระบบ แต่มาดูกันว่าสิ่งนี้ส่งผลต่อระบบอย่างไร:
- เนื่องจากหน่วยความจำไม่ได้ถูกปลดปล่อยแม้ว่าจะไม่ได้ใช้งาน จึงทำให้หน่วยความจำหมดลง
- หน่วยความจำหมดส่งผลให้ซอฟต์แวร์มีอายุมากขึ้น
- การลดหน่วยความจำที่มีอยู่ส่งผลให้เวลาตอบสนองเพิ่มขึ้นและประสิทธิภาพของระบบลดลง
- การรั่วไหลของหน่วยความจำที่ไม่สามารถควบคุมได้อาจทำให้แอปพลิเคชันเสียหายได้ในที่สุด
ในการตรวจจับการรั่วไหลของหน่วยความจำ โปรแกรมเมอร์จำเป็นต้องเข้าถึงซอร์สโค้ดของโปรแกรม
การตรวจจับการรั่วไหล
ในการแก้ปัญหา เราต้องระบุปัญหาก่อน ขั้นตอนพื้นฐานในการตรวจจับการรั่วไหลของหน่วยความจำ:
- การยืนยัน : การตรวจจับการรั่วไหล
- การค้นหาหน่วยความจำรั่วในโหมดเคอร์เนล : ค้นหาการรั่วไหลที่เกิดจากส่วนประกอบไดรเวอร์โหมดเคอร์เนล
- ค้นหาการรั่วไหลของหน่วยความจำในโหมดผู้ใช้ : การตรวจจับการรั่วไหลที่เกิดจากโปรแกรมควบคุมหรือโหมดผู้ใช้
การจัดสรรหน่วยความจำ
มีโหมดการจัดสรร RAM ตามแอปพลิเคชันที่แตกต่างกัน หากพื้นที่ว่างไม่ว่างหลังจากใช้งาน หน่วยความจำรั่วจะเกิดขึ้นโดยไม่คำนึงถึงโหมดการจัดสรร ต่อไปนี้เป็นรูปแบบการกระจายทั่วไป:
- ฟังก์ชัน HealAlloc เพื่อจัดสรรหน่วยความจำบนฮีป รันไทม์ C/C++ ที่เทียบเท่าคือ malloc และใหม่
- ฟังก์ชัน VirtualAlloc สำหรับการจัดสรรโดยตรงจากระบบปฏิบัติการ
- Kernel32 API สำหรับจัดเก็บหน่วยความจำเคอร์เนลสำหรับแอปพลิเคชัน ตัวอย่าง: CreateFile, CreateThread
- API User32 และ API Gdi32
การป้องกันการรั่วไหลของหน่วยความจำ
เราทุกคนทราบดีว่าการป้องกันดีกว่าการรักษา ดังนั้น ต่อไปนี้เป็นวิธีป้องกันความจำรั่ว
การตรวจสอบนิสัย
Google ชีตแบ่งข้อความเป็นคอลัมน์
คุณต้องระวังการใช้ RAM ที่ผิดปกติของแต่ละโปรแกรมและแอปพลิเคชัน คุณสามารถไปที่ Windows Task Manager ได้โดยคลิก CTRL + SHIFT + ESC และเพิ่มคอลัมน์เช่น Handles, User Objects, GDI Objects เป็นต้น
สิ่งนี้จะช่วยให้คุณติดตามการใช้ทรัพยากรได้อย่างง่ายดาย
เครื่องมือของ Microsoft สำหรับวินิจฉัยการรั่วไหลของหน่วยความจำ
เครื่องมือต่างๆ วินิจฉัยการรั่วไหลของหน่วยความจำสำหรับโหมดการจัดสรรที่แตกต่างกัน:
- ตัวตรวจสอบแอปพลิเคชันจะวินิจฉัยการรั่วไหลของฮีป
- UMDH (ส่วนประกอบของ Windows Debugging Tools) วินิจฉัยการรั่วไหลของกระบวนการโดยการตรวจสอบการจัดสรรฮีป
- ติดตามการจับภาพเพื่อวิเคราะห์การใช้ RAM อย่างละเอียด
- Xperf ยังติดตามรูปแบบการจัดสรรฮีป
- CRT Debug Heap ไม่เพียงแต่ติดตามการจัดสรรฮีปเท่านั้น แต่ยังช่วยให้คุณใช้เทคนิคการเข้ารหัสเพื่อลดการรั่วไหลได้อีกด้วย
- JavaScript Memory Leak Detector แก้ปัญหาการรั่วไหลของหน่วยความจำในโค้ด
เคล็ดลับการใช้งาน
- ใช้เคอร์เนล รับมือกับ s และตัวชี้อัจฉริยะอื่นๆ สำหรับทรัพยากร Win32 และการจัดสรรฮีป
- รับคลาสสำหรับการจัดการทรัพยากรอัตโนมัติสำหรับการจัดสรรหลักจากไลบรารี ATL มาตรฐาน C++ มี auto_ptr สำหรับการจัดสรรฮีป
- สรุปพอยน์เตอร์อินเทอร์เฟซ COM ใน 'พอยน์เตอร์อัจฉริยะ' ด้วย _com_ptr_t หรือ _bstr_t หรือ _variant_t .
- ตรวจสอบรหัส .NET สำหรับการใช้หน่วยความจำที่ผิดปกติ
- หลีกเลี่ยงเส้นทางออกหลายทางสำหรับฟังก์ชันเพื่อให้การจัดสรรตัวแปรในบล็อกส่วนใหญ่ว่างเมื่อสิ้นสุดฟังก์ชัน
- ใช้ข้อยกเว้นที่กำหนดเองหลังจากการจัดสรรทั้งหมดในบล็อก _finally ว่างแล้วเท่านั้น รวมฮีปทั้งหมดและจัดการกับการจัดสรรเป็นตัวชี้อัจฉริยะเพื่อใช้ข้อยกเว้น C ++
- โทร.ได้ตลอด PropVariantClear ก่อนเริ่มต้นใหม่หรือลบวัตถุ PROPVARIANT
แก้ไขการรั่วไหลของหน่วยความจำใน Windows
เช่นเดียวกับวิธีต่างๆ ในการป้องกันหน่วยความจำรั่ว มีวิธีต่างๆ ในการป้องกันหน่วยความจำรั่ว แต่ก่อนที่จะเริ่มอย่าลืม สร้างจุดคืนค่าระบบก่อน .
1] ปิดกระบวนการและเริ่มต้นใหม่
หากคุณเห็นกระบวนการที่ไม่จำเป็นใช้ RAM มากเกินไป คุณสามารถจบกระบวนการในตัวจัดการงาน คุณจะต้องรีบูตอุปกรณ์เพื่อให้พื้นที่ว่างพร้อมใช้งานสำหรับกระบวนการอื่นๆ หากไม่มีรีบูต ปัญหาหน่วยความจำรั่วจะไม่ได้รับการแก้ไข กระบวนการหนึ่งที่มีข้อบกพร่องที่ทำให้พีซีช้าลงคือ Runtime Broker ลองดูว่าเพียงแค่ปิดการใช้งานนี้
2] เครื่องมือวิเคราะห์หน่วยความจำ
เพื่อเข้าใช้งานบิ้วอิน เครื่องมือวิเคราะห์หน่วยความจำ สำหรับ Windows:
แอพจดบันทึก windows 10
- บันทึกงานสำคัญทั้งหมดของคุณ
- คลิก วิน + อาร์ เปิด วิ่ง หน้าต่าง.
- ป้อนคำสั่ง mdsched.exe ใน วิ่ง หน้าต่าง.
- รีสตาร์ทเครื่องคอมพิวเตอร์ของคุณ
- หลังจากรีสตาร์ท ทำการสแกนพื้นฐานหรือเลือก ' ขั้นสูง 'ตัวเลือกเช่น' ทดสอบส่วนผสม ' หรือ ' จำนวนครั้งที่ผ่าน '.
- คลิก F10 เพื่อเริ่มการทดสอบ
นี่เป็นการแก้ไขชั่วคราวในตอนนี้
3] ตรวจสอบการอัปเดตไดรเวอร์
ไดรเวอร์ที่ล้าสมัยทำให้หน่วยความจำรั่วไหล อัปเดตไดรเวอร์ทั้งหมด :
- คลิก วิน + อาร์ และเปิด วิ่ง หน้าต่าง. พิมพ์ devmgmt.msc แล้วกด Enter ซึ่งจะพาคุณไป ตัวจัดการอุปกรณ์ .
- ตรวจสอบไดรเวอร์ที่ล้าสมัยและอัปเดตทั้งหมด
- สำหรับการอัปเดตที่คุณอาจพลาดไป โปรดดูที่ Windows Update
มันง่าย.
4] การเพิ่มประสิทธิภาพ
การปรับแต่งประสิทธิภาพของ Windows จะจัดการทุกอย่างรวมถึงการกำหนดเวลา cpu และการใช้หน่วยความจำเพื่อป้องกันการรั่วไหลของหน่วยความจำ ทำตามขั้นตอนเหล่านี้:
- คลิกขวา ' พีซีเครื่องนี้ »และเลือก« ขั้นสูง 'บนแผงด้านซ้าย
- ภายใต้ ' ขั้นสูง บนแท็บ ' การแสดง