- อ็อบเจ็กต์ GDI และ USER, หน่วยความจำ GPU และ RAM ต้องการการวัดที่แตกต่างกัน
- การบริโภคสูงในระดับสูงเพียงอย่างเดียวไม่ได้ยืนยันว่ามีการรั่วไหลของทรัพยากร
- ทำซ้ำขั้นตอนเดิมและบันทึกว่ากระบวนการใดสะสมทรัพยากรมากที่สุด
- การกู้คืนภาพโดยใช้วิธีลัดไม่ได้แก้ไขต้นเหตุของการรั่วไหล
หาก Windows เริ่มทำงานได้ตามปกติ และหลังจากนั้นหลายชั่วโมง หน้าต่างแสดงผลผิดปกติ หรือแอปพลิเคชันทำงานไม่เสถียร อาจเกิดจากสาเหตุต่อไปนี้ การสะสมทรัพยากรที่ไม่ได้รับการปล่อยออกมาอย่างไรก็ตาม หน้าจอดำหรือการใช้งานหน่วยความจำสูงเพียงอย่างเดียวไม่เพียงพอที่จะยืนยันว่ามีการรั่วไหลเกิดขึ้น
เพื่อตรวจสอบความเป็นไปได้ การรั่วไหลของทรัพยากรกราฟิกใน Windowsสิ่งสำคัญคือต้องแยกแยะความแตกต่างระหว่างวัตถุอินเทอร์เฟซ หน่วยความจำ GPU และหน่วยความจำแอปพลิเคชัน แต่ละประเภทต้องการการวัดที่แตกต่างกัน เป้าหมายคือการค้นหาการเติบโตที่สามารถทำซ้ำได้และเชื่อมโยงกับกระบวนการหรือการดำเนินการเฉพาะ
ระบุว่าทรัพยากรใดกำลังเพิ่มขึ้น: GDI, หน่วยความจำกราฟิก หรือ RAM

คำว่า "ทรัพยากรกราฟิก" สามารถหมายถึงองค์ประกอบต่างๆ ได้ ก่อนที่จะเปลี่ยนตัวควบคุม ให้ตรวจสอบว่าตัวบ่งชี้ใดเพิ่มขึ้น:
| ทรัพยากร | มันหมายถึงอะไร? | จะเริ่มจากตรงไหนดี |
|---|---|---|
| วัตถุ GDI | ทรัพยากรสำหรับการวาดภาพ เช่น บิตแมป ฟอนต์ และบริบทของอุปกรณ์ | จำนวนอ็อบเจ็กต์ GDI ต่อกระบวนการ |
| วัตถุผู้ใช้ | ส่วนประกอบต่างๆ ของอินเทอร์เฟซ เช่น หน้าต่าง เมนู และเคอร์เซอร์ | จำนวนอ็อบเจ็กต์ USER ต่อกระบวนการ |
| หน่วยความจำ GPU | หน่วยความจำเฉพาะและหน่วยความจำระบบที่ใช้ร่วมกับ GPU | ส่วนจัดการงาน ประสิทธิภาพ และรายละเอียด |
| หน่วยความจำส่วนตัวของแอปพลิเคชัน | หน่วยความจำที่ถูกจัดสรรไว้แล้วและไม่ได้ใช้ร่วมกับกระบวนการอื่น | ตัวนับไบต์ส่วนตัวของกระบวนการ |
| พูลแบบเพจจิ้งและพูลแบบไม่เพจจิ้ง | ทรัพยากรหน่วยความจำเคอร์เนลที่ใช้โดย Windows และไดรเวอร์ | ตัวนับหน่วยความจำทั่วโลก และ PoolMon หากจำเป็น |
การใช้งานอ็อบเจ็กต์อินเทอร์เฟซจนหมดอาจทำให้ระบบล่มได้ แม้ว่าจะมีหน่วยความจำเหลืออยู่ก็ตาม ดังนั้น การตรวจสอบเพียงแค่เปอร์เซ็นต์ของ RAM หรือ VRAM ในหน่วยกิกะไบต์ อาจทำให้พลาดส่วนสำคัญของปัญหาไป
ตรวจสอบอ็อบเจ็กต์ GDI และ USER สำหรับแต่ละกระบวนการ
ใน Windows 11 คุณสามารถเริ่มต้นด้วย ตัวจัดการงาน:
- เปิดด้วย Ctrl + Shift + Esc.
- เข้า รายละเอียด.
- คลิกขวาที่ส่วนหัวของคอลัมน์แล้วเปิด เลือกคอลัมน์.
- เพิ่มคอลัมน์ของ วัตถุ GDI, วัตถุผู้ใช้ หรือ ผู้ใช้รวมถึงตัวระบุและขนาดการยืนยันที่มีอยู่
- จดชื่อกระบวนการ รหัส PID และค่าเริ่มต้นของกระบวนการนั้นไว้
ชื่ออาจแตกต่างกันไปขึ้นอยู่กับภาษาและเวอร์ชัน ตัวระบุทั่วไปหรือแฮนเดิลเป็นหน่วยวัดที่แตกต่างออกไป: พวกมันไม่เทียบเท่ากับจำนวนวัตถุ GDI หรือวัตถุ USER
ถัดไป ให้ลองทำซ้ำการกระทำที่ดูเหมือนจะเป็นสาเหตุของความล้มเหลว เช่น การเปิดและปิดแผงควบคุม การสร้างภาพตัวอย่าง หรือการทำซ้ำการวาด ตรวจสอบว่าจำนวนนับเพิ่มขึ้นในแต่ละรอบหรือไม่ และในที่สุดก็คงที่หรือไม่
ค่าสูงเพียงค่าเดียวไม่ได้ยืนยันว่ามีการรั่วไหลเสมอไป สิ่งที่สำคัญกว่านั้นคือ ลำดับเหตุการณ์เดียวกันนี้ทำให้เกิดการเพิ่มขึ้นอย่างต่อเนื่องโดยไม่มีการทรงตัว โดยเฉพาะอย่างยิ่งหากเกิดขึ้นพร้อมกับข้อผิดพลาดของอินเทอร์เฟซ
คุณสามารถใช้ได้เช่นกัน โปรแกรมสำรวจกระบวนการของ Microsoft Sysinternals เพื่อขยายขอบเขตการตรวจสอบกระบวนการและตัวระบุต่างๆ
จำลองปัญหาและเปรียบเทียบผลก่อนและหลัง

โดยปกติแล้ว การทดสอบแบบควบคุมจะให้ข้อมูลมากกว่าการเปิดคอมพิวเตอร์ทิ้งไว้โดยไม่บันทึกสิ่งที่เกิดขึ้น:
- เปิดแอปพลิเคชันและรอจนกว่าการโหลดเริ่มต้นจะเสร็จสมบูรณ์
- จดบันทึกตัวเลขที่คุณกำลังติดตามอยู่
- ทำซ้ำขั้นตอนเดียวกันหลายๆ ครั้งกับเอกสารหรือโครงการที่คล้ายคลึงกัน
- ปิดแผงควบคุมหรือเอกสารที่ใช้งานอยู่ แล้วสังเกตการเปลี่ยนแปลง
- บันทึกงานของคุณ ปิดแอปพลิเคชันจากเมนู และทำการทดสอบซ้ำในเซสชันใหม่
หากการทำซ้ำแต่ละครั้งเพิ่มทรัพยากร และพฤติกรรมเริ่มต้นใหม่อีกครั้งเมื่อคุณเปิดแอปพลิเคชัน นั่นจะเป็นเบาะแสที่มีประโยชน์ในการตรวจสอบโปรแกรมนั้น ปลั๊กอิน หรือฟังก์ชันที่โปรแกรมนั้นใช้
การปล่อยทรัพยากรไม่ได้เกิดขึ้นทันทีเสมอไป: แอปพลิเคชันบางตัวเก็บแคชและนำทรัพยากรกลับมาใช้ใหม่ การเพิ่มขึ้นในช่วงแรกแล้วคงที่ในภายหลังนั้นจะถูกตีความแตกต่างจากการเพิ่มขึ้นอย่างต่อเนื่องในช่วงรอบการทำงานที่เท่ากัน
ใช้ PerfMon เพื่อบันทึกการใช้หน่วยความจำเมื่อเวลาผ่านไป
เปิดการวิ่งด้วย วินโดวส์ + อาร์เขียนว่า perfmon แล้วกด Enter ใน Performance Monitor คุณสามารถเพิ่มตัวนับเพื่อสังเกตกระบวนการเฉพาะและสถานะหน่วยความจำโดยรวมได้
ชื่อภาษาอังกฤษเหล่านี้ใช้สำหรับการอ้างอิงเท่านั้น ระบบปฏิบัติการ Windows อาจแสดงชื่อเหล่านี้ในรูปแบบที่แปลแล้ว:
| เคาน์เตอร์ | มันใช้สำหรับอะไร? |
|---|---|
Process\Private Bytes |
การติดตามหน่วยความจำส่วนตัวที่ถูกบุกรุกของแอปพลิเคชัน |
Process\ID Process |
เชื่อมโยงอินสแตนซ์ตัวนับเข้ากับ PID ของมัน |
Process\Handle Count |
สังเกตจำนวนตัวระบุที่เปิดอยู่ |
Memory\Pool Paged Bytes |
ตรวจสอบขนาดของพูลเพจเจอร์ของเคอร์เนล |
Memory\Pool Nonpaged Bytes |
ติดตามขนาดของกลุ่มข้อมูลที่ไม่แบ่งหน้า |
Memory\Available MBytes |
สังเกตหน่วยความจำทางกายภาพที่มีอยู่ |
เลือกอินสแตนซ์ของกระบวนการที่คุณต้องการตรวจสอบ ตรวจสอบ PID เมื่อมีหลายอินสแตนซ์ที่มีชื่อเดียวกัน หรือเมื่อคุณรีสตาร์ทแอปพลิเคชัน
เพื่อรักษาคุณภาพของปลาที่จับได้เป็นเวลานาน:
- ขยาย ชุดเก็บรวบรวมข้อมูล > กำหนดเองโดยผู้ใช้.
- สร้างชุดข้อมูลใหม่และเลือกการสร้างด้วยตนเองขั้นสูง
- เลือกสร้างบันทึกข้อมูลและทำเครื่องหมาย ตัวนับประสิทธิภาพ.
- เพิ่มตัวนับและกำหนดช่วงเวลาการสุ่มตัวอย่าง
- เลือกโฟลเดอร์ปลายทางและทำตามขั้นตอนในตัวช่วยสร้างให้เสร็จสิ้น
- เริ่มการเก็บรวบรวมข้อมูลก่อนที่จะทำให้เกิดปัญหา และหยุดการเก็บรวบรวมข้อมูลเมื่อเสร็จสิ้น
ปรับช่วงเวลาการสุ่มตัวอย่างให้เหมาะสมกับความเร็วของการเปลี่ยนแปลงที่เกิดขึ้น การสุ่มตัวอย่างทุกสิบนาทีอาจเพียงพอสำหรับการเปลี่ยนแปลงที่เกิดขึ้นช้า แต่ก็อาจพลาดการเปลี่ยนแปลงที่เกิดขึ้นในเวลาเพียงไม่กี่วินาที การบันทึกข้อมูลตลอด 24 ชั่วโมงก็ไม่จำเป็นเช่นกัน ให้บันทึกเฉพาะช่วงเวลาที่จำเป็นในการจำลองพฤติกรรมนั้น ๆ เท่านั้น
มันตีความค่าตัวนับโดยไม่ทำให้เกิดความสับสนระหว่าง RAM และหน่วยความจำเคอร์เนล

การเติบโตอย่างต่อเนื่องของ ไบต์ส่วนตัว ข้อมูลนี้สามารถช่วยชี้นำการตรวจสอบไปยังแอปพลิเคชันที่เกี่ยวข้องได้ อย่างไรก็ตาม มันอาจสะท้อนถึงงานค้าง เอกสารขนาดใหญ่ หรือแคชได้เช่นกัน ควรเปรียบเทียบปริมาณงานที่เทียบเท่ากันก่อนที่จะสรุปว่ามีการรั่วไหลเกิดขึ้นหรือไม่
การเพิ่มขึ้นใน พูลเพจ ระบบนี้ไม่ได้ระบุการรั่วไหลของหน่วยความจำในโหมดผู้ใช้โดยอัตโนมัติ ทั้งส่วนนี้และพูลหน่วยความจำที่ไม่ถูกแบ่งหน้าจัดอยู่ในทรัพยากรของเคอร์เนล และผลรวมของทั้งสองส่วนนี้เพียงอย่างเดียวไม่ได้บ่งชี้ว่าส่วนประกอบใดกำลังใช้หน่วยความจำมากเกินไป
หากแนวโน้มชี้ไปที่กลุ่มใดกลุ่มหนึ่งเหล่านี้ PoolMon ซึ่งรวมอยู่ใน Windows Driver Kitฟังก์ชันนี้ช่วยให้คุณตรวจสอบงานที่ได้รับมอบหมายตามป้ายกำกับได้ เป็นขั้นตอนการวิเคราะห์ขั้นสูงที่สามารถช่วยเชื่อมโยงการเติบโตกับส่วนประกอบหรือตัวควบคุมได้
เปอร์เซ็นต์การใช้งานไฟล์เพจจิ้งให้ข้อมูลเชิงบริบท แต่ไม่ได้ระบุแหล่งที่มาของการรั่วไหล หรือใช้แทนการวัดผลกระบวนการได้
ตรวจสอบหน่วยความจำ GPU และตัดความเป็นไปได้ของการอ่านค่าที่ผิดพลาดออกไป

ในตัวจัดการงาน ให้เปิด ประสิทธิภาพ > GPU หากต้องการตรวจสอบการใช้งานโดยรวม ในส่วนรายละเอียด คุณสามารถเพิ่มคอลัมน์สำหรับหน่วยความจำ GPU เฉพาะและหน่วยความจำ GPU ที่ใช้ร่วมกัน เพื่อสังเกตกระบวนการทำงานได้
ในกราฟิกการ์ดแบบแยก หน่วยความจำเฉพาะจะตรงกับ VRAM ของการ์ดนั้น ส่วนหน่วยความจำร่วมจะใช้ RAM ของระบบ ใน GPU แบบรวม หน่วยความจำเฉพาะบางส่วนอาจมาจากกลุ่ม RAM ด้วย
ทรัพยากรที่ใช้ร่วมกันระหว่างกระบวนการต่างๆ อาจถูกนับรวมโดยหลายกระบวนการ ดังนั้น การรวมทุกแถวจึงไม่จำเป็นต้องเท่ากับปริมาณการใช้ทรัพยากรทั้งหมดเสมอไป นอกจากนี้ยังส่งผลต่อการตีความกระบวนการที่ใช้ทรัพยากรร่วมกับแอปพลิเคชันอื่นๆ เช่น DWM ด้วย
นอกจากนี้ ไมโครซอฟต์ยังจัดทำเอกสารเกี่ยวกับเรื่องนี้ด้วย ปัญหาการนับในระบบ Windows 10 บางระบบ ซึ่งสามารถจำลองการรั่วไหลของหน่วยความจำ GPU ต่อกระบวนการได้ ในกรณีที่ได้รับผลกระทบ แท็บประสิทธิภาพและเครื่องมือ WPR หรือ WPA จะแนะนำเกณฑ์มาตรฐานที่เหมาะสม
หากคำถามของคุณเกี่ยวข้องกับตัวจัดการการแสดงผลบนเดสก์ท็อป โปรดดูบทความเฉพาะเรื่องนั้น การใช้ VRAM ของ dwm.exe.
ปุ่มลัด Windows + Ctrl + Shift + B สามารถทำอะไรได้บ้าง?
ไมโครซอฟต์รวมถึง Windows + Ctrl + Shift + B หนึ่งในตัวเลือกการกู้คืนสำหรับปัญหาหน้าจอดำหรือกระพริบ หากวิธีนี้ได้ผล คุณอาจได้ยินเสียงบี๊บหรือเห็นการกระพริบ หน้าจอไม่จำเป็นต้องเปลี่ยนเป็นสีขาวเสมอไป
ใช้เป็นมาตรการในการกู้คืนภาพของคุณ การที่เดสก์ท็อปกลับมาตอบสนองอีกครั้งไม่ได้ยืนยันว่ามีการรั่วไหลหรือพิสูจน์ได้ว่าต้นเหตุของการรั่วไหลได้รับการแก้ไขแล้ว
ระบบปฏิบัติการ Windows ยังมีกลไกการกู้คืนสำหรับการทำงานผิดพลาดของ GPU ด้วย หากคุณเห็นการแจ้งเตือนว่าไดรเวอร์หยุดทำงานและกู้คืนแล้ว ให้จดเวลาและตรวจสอบเหตุการณ์ที่เกี่ยวข้อง การแจ้งเตือนนี้บ่งชี้ว่าระบบกราฟิกกำลังกู้คืน แต่ไม่ได้ระบุถึงการรั่วไหลของหน่วยความจำโดยตรง
ตรวจสอบใบสมัครและคนขับที่เกี่ยวข้อง
เมื่อเกิดปัญหาในโปรแกรมใดโปรแกรมหนึ่ง ให้เริ่มต้นด้วยการอัปเดตโปรแกรมนั้นและตรวจสอบปลั๊กอิน หากสามารถปิดใช้งานการเร่งความเร็วของกราฟิกชั่วคราวได้ ให้เปรียบเทียบผลลัพธ์กับการดำเนินการเดียวกัน
ตัวอย่างเช่น Adobe แนะนำให้ยกเลิกการเลือกช่องทำเครื่องหมายใน Photoshop แก้ไข > การตั้งค่า > ประสิทธิภาพ > ใช้โปรเซสเซอร์กราฟิกรีสตาร์ทแอปพลิเคชันและตรวจสอบการทำงาน การปรับปรุงนี้จะนำการตรวจสอบไปยังส่วนที่เกี่ยวข้องกับกราฟิก แต่ไม่ได้แยกแยะโดยอัตโนมัติว่าเป็นข้อผิดพลาดของแอปพลิเคชัน ไดรเวอร์ หรือฮาร์ดแวร์
หากปัญหาเริ่มเกิดขึ้นทันทีหลังจากอัปเดตไดรเวอร์ ให้ตรวจสอบปัญหาที่ทราบแล้วและความเป็นไปได้ในการย้อนกลับไปใช้เวอร์ชันก่อนหน้า Windows มีตัวเลือกนี้ให้ ตัวจัดการอุปกรณ์ > อะแดปเตอร์แสดงผล > คุณสมบัติ > ไดรเวอร์ > ย้อนกลับไดรเวอร์ เมื่อมันเก็บเวอร์ชันที่มีอยู่ไว้
เปลี่ยนทีละองค์ประกอบแล้วทำการทดสอบซ้ำ วิธีนี้จะช่วยให้คุณเห็นว่าการเปลี่ยนแปลงใดส่งผลต่อการเติบโตของทรัพยากร แทนที่จะสับสนหลังจากทำการเปลี่ยนแปลงหลายอย่างพร้อมกัน
ควรบันทึกข้อมูลอะไรบ้างเพื่อแก้ไขปัญหานี้?
ไฟล์นี้จะเก็บชื่อและเวอร์ชันของแอปพลิเคชัน บิลด์ของ Windows รุ่นของ GPU เวอร์ชันของไดรเวอร์ และขั้นตอนที่จำเป็นในการจำลองข้อผิดพลาด นอกจากนี้ยังรวมถึงค่าเริ่มต้นและค่าสุดท้าย หรือบันทึกของ PerfMon ด้วย
คำอธิบายเช่น "ทุกครั้งที่ฉันเปิดและปิดแผงนี้ จำนวนอ็อบเจ็กต์ GDI ของกระบวนการจะเพิ่มขึ้นและไม่คงที่" จะมีประโยชน์มากกว่าการบอกเพียงว่า Windows ทำงานช้า
การปิดและเปิดแอปพลิเคชันใหม่อาจช่วยบรรเทาปัญหาได้ชั่วคราว การแก้ไขอย่างถาวรจะขึ้นอยู่กับส่วนประกอบที่เป็นสาเหตุ: การอัปเดตโปรแกรม ปลั๊กอินที่ได้รับการแก้ไข หรือไดรเวอร์ที่แก้ไขปัญหาที่ระบุไว้
ฉันเป็นผู้ชื่นชอบเทคโนโลยีที่เปลี่ยนความสนใจ "เกินบรรยาย" ของเขาให้กลายเป็นอาชีพ ฉันใช้เวลามากกว่า 10 ปีในชีวิตไปกับเทคโนโลยีล้ำสมัยและปรับแต่งโปรแกรมทุกประเภทด้วยความอยากรู้อยากเห็น ตอนนี้ฉันมีความเชี่ยวชาญในด้านเทคโนโลยีคอมพิวเตอร์และวิดีโอเกม เนื่องจากเป็นเวลากว่า 5 ปีแล้วที่ฉันเขียนให้กับเว็บไซต์ต่างๆ เกี่ยวกับเทคโนโลยีและวิดีโอเกม โดยสร้างบทความที่พยายามให้ข้อมูลที่คุณต้องการในภาษาที่ทุกคนเข้าใจได้
หากคุณมีคำถามใดๆ ความรู้ของฉันมีตั้งแต่ทุกอย่างที่เกี่ยวข้องกับระบบปฏิบัติการ Windows รวมถึง Android สำหรับโทรศัพท์มือถือ และความมุ่งมั่นของฉันคือคุณ ฉันยินดีสละเวลาสักครู่เสมอและช่วยคุณแก้ไขคำถามใดๆ ที่คุณอาจมีในโลกอินเทอร์เน็ตนี้