ฉันจะทำให้ Windows 7 ก้าวร้าวน้อยลงในการแคชหน่วยความจำได้อย่างไร


16

ฉันได้สังเกตเห็นเมื่อเร็ว ๆ นี้ว่า Windows 7 ในเครื่องของฉันได้บ่นเกี่ยวกับหน่วยความจำไม่เพียงพอและฉันควรปิดโปรแกรมบางโปรแกรม โดยทั่วไปแล้วมันจะชี้ให้เห็นโปรแกรมที่ฉันใช้ซึ่งมีหน่วยความจำรั่วและมีขนาดค่อนข้างใหญ่ อย่างไรก็ตามโดยปกติแล้วโปรแกรมเหล่านี้จะเริ่มต้นที่การใช้งาน RAM ขนาด 20MB และหลังจากใช้งานโปรแกรมระหว่าง 12 ถึง 24 ชั่วโมงแล้วพวกเขาจะเติบโตจนถึงระดับการใช้งาน RAM สูงสุด 200MB ฉันไม่เคยมีโปรแกรมเหล่านี้มากกว่าสามโปรแกรมที่ทำงานในเวลาเดียวกันดังนั้นการใช้ RAM สูงสุด 600MB ที่ฉันเคยเห็นจากโปรแกรมที่ทำงานอยู่ของฉัน

ฉันใช้ Windows 7 x64 บนเครื่องที่มี RAM 4GB ตอนแรกฉันลืมไปแล้วและเพิ่งจะรีสตาร์ทโปรแกรมเมื่อ Windows บ่น แต่ตอนนี้ฉันจำได้ว่าความจริงที่ว่า Windows บ่นเกี่ยวกับฉันโดยใช้ RAM 600MB (ต่ำกว่า 2GB แม้ว่าคุณจะมีหน่วยความจำที่ใช้โดยระบบปฏิบัติการ) . ดังนั้นฉันจึงดึงหน้าต่างกระบวนการของระบบขึ้นมาเพื่อดูการใช้งานหน่วยความจำทั้งหมดของฉันจากกระบวนการและกระบวนการของระบบที่ระบุไว้ มันเพิ่มขึ้นเป็นเพียงมากกว่า 700MB ดังนั้นฉันยังคงสับสน จากนั้นฉันไปที่การตรวจสอบทรัพยากรและเปิดแท็บหน่วยความจำ ที่นั่นฉันคิดว่าฉันพบคำตอบของฉัน มันระบุว่าฉันใช้ RAM เพียง 33% เท่านั้น อย่างไรก็ตามบนแถบการจัดสรรทรัพยากรหน่วยความจำกายภาพส่วนที่แก้ไขมีมากถึง 2.3GB ส่วนสแตนบายสูงถึง 540MB ส่วนที่ว่างอยู่ต่ำกว่า 20MB หน่วยความจำแคชแสดงอยู่ที่ 2 หน่วยความจำ 8GB และหน่วยความจำที่มีจำหน่ายอยู่ในรายการที่ 550MB (ค่าเหล่านี้ถูกปัดเศษเล็กน้อยแน่นอนว่าเมื่อเจ้ากำลังเปลี่ยนแปลงอยู่ตลอดเวลาขณะที่ฉันเขียน)

ดังนั้น Windows 7 จึงใช้หน่วยความจำมากกว่าที่ฉันเป็น ก่อนหน้านี้ฉันเคยทำการปรับเปลี่ยนบางอย่างในเมนูบริการของ Windows ที่ติดตั้ง แต่นั่นก็เพื่อปิดใช้งานบริการโฮสต์บางตัวเท่านั้นเนื่องจากฉันไม่ต้องการแชร์สื่อใด ๆ เพื่อเปิดใช้งานไคลเอ็นต์ Telnet และลบอินเทอร์เน็ต Explorer แต่มันอาจเป็นความผิดของฉัน มีวิธีใดที่จะทำให้ Windows ไม่ทำอย่างนี้หรืออย่างน้อยก็แคชน้อยลงเรื่อย ๆ ดังนั้นฉันจึงหยุดรับการแจ้งเตือน "Low on Memory" เหล่านี้หรือไม่


2
OP เข้าใจผิดปัญหา เขาใช้หน่วยความจำเสมือนที่ได้รับการสนับสนุนเหลือน้อย การวิเคราะห์ทั้งหมดของเขาเกี่ยวกับความจำทางกายภาพนั้นไม่เกี่ยวข้อง คุณสามารถมีหน่วยความจำกายภาพฟรีจำนวนมาก แต่มีหน่วยความจำเสมือนที่สำรองข้อมูลไม่เพียงพอและคำเตือนหน่วยความจำแบบป๊อปอัพคือคำเตือนเกี่ยวกับหน่วยความจำเสมือนที่ได้รับการสนับสนุนที่มีอยู่ (แม้ว่าการรั่วไหลของหน่วยความจำกายภาพจากไดรเวอร์สามารถทำให้เกิดปัญหาทางอ้อม)
David Schwartz

"OP เข้าใจผิดปัญหา" เช่นเดียวกับผู้ตอบหลายคน :(
เจมี่ Hanrahan

คำตอบ:


10

หน่วยความจำสแตนด์บายไม่ใช่ปัญหามันถูกพิจารณาว่าเป็น "ฟรี" และจะถูกจัดสรรใหม่เมื่อมีการร้องขอ - มันเพิ่งจะมีหน่วยความจำที่ใช้โดยโปรแกรมเมื่อเร็ว ๆ นี้ แต่ตอนนี้เป็นอิสระแล้ว หากโปรแกรมอื่นร้องขอหน่วยความจำมากกว่า "ฟรี" ระบบควรจัดสรรจากการตั้งค่าสแตนด์บายอย่างราบรื่น (เนื่องจากหน่วยความจำ "สแตนด์บาย" ไม่ได้ใช้งานจริงในขณะนี้)

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


3
ตามที่ฉันบันทึกไว้ในข้อคิดเห็นของฉันสำหรับคำตอบของ CJM ฉันปิดแอปพลิเคชันทั้งหมดของฉันที่สงสัย (มีเกมพีซีอินดี้บางเกม) และมี Task Manager, Resource Monitor, AVG และ Chrome ที่ทำงานอยู่ในขณะนี้ แต่ยังมีหน่วยความจำ 1.6GB ฉันเปิดคอมพิวเตอร์ทิ้งไว้หลาย ๆ วันซึ่งตรงกับโปรไฟล์ในบทความที่คุณเชื่อมโยง อย่างไรก็ตามข้อความบนเว็บเพจนั้นคือการค้นหากระบวนการที่มีขนาดการส่งข้อมูลขนาดใหญ่ ขณะนี้เป็นกระบวนการจาก nSvcAppFlt.exe มันมีขนาดการทำงานที่กำหนดไว้ที่ 30MB แต่ขนาดการกระทำ 13.5GB สิ่งที่ช่วยให้?
grg-n-sox

2
นั่นคือโปรแกรมที่รั่วหน่วยความจำของคุณ ยังเห็นsocial.answers.microsoft.com/Forums/en-US/w7performance/thread/... ลบออกและควรจะดี
akid

ขอบคุณมาก. ที่จริงแล้วมันช่างดี ดังนั้นโดยทั่วไปถ้าฉันสังเกตเห็นว่า RAM ของฉันถูกกินหมดฉันสามารถไปที่มอนิเตอร์ทรัพยากรของฉันดูว่าส่วนหน่วยความจำที่ดัดแปลงนั้นมีขนาดใหญ่มากหรือไม่และดูว่ากระบวนการใดที่มีขนาดใหญ่กว่าปกติ เป็นเครื่องมือวินิจฉัยที่ดีสำหรับ Windows
grg-n-sox

ปิดหรืออัพเกรดซอฟต์แวร์ไฟร์วอลล์ Nvidia ของคุณ
David Schwartz

คุณมี "คุณ" สามคนที่ควรเป็น "ของคุณ" ในย่อหน้าสุดท้าย (ไม่สามารถแนะนำการแก้ไขเล็กน้อยเกินไป)
Shadow The Burning Wizard

4

SuperFetch การแคชแบบ pre-emptive ไม่ใช่ปัญหาของคุณ Windows 7 จะใช้หน่วยความจำสำรองมากเท่าที่จะทำได้เพื่อแคชล่วงหน้าสิ่งที่คิดว่าคุณต้องการต่อไป หากทำให้ถูกต้องแล้วจะช่วยให้คุณประหยัดเวลาสักเล็กน้อยและแอปพลิเคชันของคุณจะปรากฏเร็วขึ้นและตอบสนองได้ดีขึ้น

หากเดาผิดและคุณต้องการข้อมูลอื่น Superfetch จะปล่อยหน่วยความจำบางส่วนที่มีเพื่อให้คุณสามารถโหลดข้อมูลที่คุณต้องการได้จริง ดู: http://arstechnica.com/microsoft/news/2010/02/behind-the-windows-7-memory-usage- ชำแหละสัตว์เลี้ยง

หากคุณได้รับปัญหา 'หน่วยความจำเหลือน้อย' มันจะไม่เป็นเพราะ SuperFetch เพราะมันจะปล่อยหน่วยความจำมากเท่าที่จำเป็นหากแอปพลิเคชันต้องการ หน่วยความจำของคุณที่มีอยู่ (550MB) คือสิ่งที่ superfetch ใช้อยู่ดังนั้นอย่างชัดเจนว่าคุณยังไม่ได้ใช้หน่วยความจำหมด แม้เมื่อคุณใช้ RAM จนหมดเครื่องของคุณก็จะถอยกลับไปยังหน่วยความจำเสมือนแม้ว่าคุณจะต้องการหลีกเลี่ยงปัญหานี้เนื่องจากประสิทธิภาพในการทำงาน ...

ดังนั้นจึงแนะนำว่าคุณมีปัญหา 'หน่วยความจำเหลือน้อย' เนื่องจากปัญหาอื่น - บางทีหนึ่งในแอพที่รั่วไหลของคุณกำลังใช้ทรัพยากรประเภทอื่น (และไม่ละทิ้ง) ...

ไม่ว่าจะด้วยวิธีใดวิธีการแก้ปัญหามีแนวโน้มที่จะพบได้โดยการจัดการแอปพลิเคชันรถบั๊กกี้ของคุณมากกว่าการไปยุ่งกับ SuperFetch ...


ฉันได้รับว่าส่วนของหน่วยความจำสแตนด์บายเป็นส่วนหนึ่งของหน่วยความจำแคช แต่ฉันต้องสงสัยอย่างจริงจังปัญหาคือโปรแกรมของฉัน ฉันเพิ่งปิดพวกเขาทั้งหมดทันทีดังนั้นสิ่งที่ฉันใช้คือ AVG, Task Manager, Resource Monitor และหน้าต่างเดียวของ Chrome ที่มี 4 แท็บ มีการใช้งานเพียง 1042MB กับหน่วยความจำที่มีอยู่ 1417MB เท่านั้น แต่ฉันก็ยังมีหน่วยความจำ Modified ที่ใหญ่ถึง 1633MB ซึ่งตัวจัดการงานนับเป็นหน่วยความจำที่ใช้แล้วและแจ้งให้ฉันทราบว่าหน่วยความจำเหลือน้อย มีวิธีการลดปริมาณหน่วยความจำ Modified หรือเพียงแค่ปิดการแจ้งเตือนหน่วยความจำเหลือน้อยหรือไม่?
grg-n-sox

0

เนื่องจากคุณไม่คิดว่าปัญหาเกิดขึ้นจากโปรแกรมที่มีการรั่วไหลของหน่วยความจำทางเลือกอื่นคือการเพิ่มขนาดหน้าไฟล์ให้กับคุณ

ในขณะที่ไฟล์หน้าไม่ใช่หน่วยความจำหลักของคุณมันจะอนุญาตให้ระบบปฏิบัติการสลับข้อมูลเพิ่มเติมไปยังฮาร์ดไดรฟ์และหวังว่าจะหยุดข้อความ "หน่วยความจำไม่พอ" ตัวเลือกอื่นเท่านั้นที่จะลบโปรแกรมที่เกี่ยวข้องกับกระบวนการที่มีการพิมพ์ขนาดใหญ่ 13GB ถึงแม้ว่าฉันไม่รู้ว่าโปรแกรมจะต้องมีหน้าหน่วยความจำมากขนาดไหนเว้นแต่เป็นเกมพีซีระดับสูงหรือซอฟต์แวร์การเรนเดอร์ 3D


0

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

เพื่อแก้ปัญหาฉันใช้เครื่องมือเพิ่มประสิทธิภาพหน่วยความจำจาก Glary Utilities ฟรี คอมพิวเตอร์ของฉันมีหน่วยความจำ 6 GIG เมื่อฉันบูทครั้งแรกฉันมีหน่วยความจำในการใช้งานประมาณ 2 GIGG, สแตนด์บาย 2 GIGG และ 2 GIGG ของสิ่งที่ฉันเรียกใช้ฟรีหน่วยความจำตามการตรวจสอบทรัพยากรของ Windows ภายในครึ่งวันหรือดังนั้นหน่วยความจำฟรีของฉันทั้งหมดจะเปลี่ยนเป็นหน่วยความจำสแตนด์บายไม่ว่าฉันจะใช้คอมพิวเตอร์หรือไม่ ตอนนี้ฉันมีเครื่องมือเพิ่มประสิทธิภาพหน่วยความจำของ Glary Utilities เริ่มทำงานกับ Windows และสามารถทำให้คอมพิวเตอร์ของฉันทำงานอย่างไม่มีกำหนดมีหน่วยความจำฟรี 2 GIG เต็มรูปแบบ

ทุกครั้งที่ฉันนั่งเซสชันอื่นฉันคลิกสองครั้งที่ไอคอนถาดเครื่องมือเพิ่มประสิทธิภาพหน่วยความจำและทำการปรับให้เหมาะสม ขอให้หน่วยความจำว่าง 2 GIGG ดั้งเดิมของฉันว่างเปล่า ฉันขอได้มากกว่านี้ แต่นั่นคือจำนวนสูงสุดที่จะเพิ่มขึ้นโดยไม่คำนึงถึง ใช้เวลาประมาณ 30 วินาทีเพื่อให้เครื่องมือเพิ่มประสิทธิภาพสมบูรณ์ซึ่งน้อยกว่าที่ต้องการสำหรับการรีบูต มันมีโหมดปรับให้เหมาะสมอัตโนมัติ แต่ฉันไม่สามารถหาวิธีทำให้มันใช้งานได้


หน่วยความจำสแตนด์บายไม่ใช่ปัญหา
เจมี่ Hanrahan

ควรเพิ่ม "หน่วยความจำเพิ่มประสิทธิภาพหน่วยความจำ" Standby RAM คือ RAM ที่ "ใช้งานอยู่" ในกระบวนการ มันถูกผลักออกจากกระบวนการเหล่านั้นเนื่องจากการแทนที่ชุดการทำงาน แต่มันยังคงมีสิ่งที่มันทำเมื่อมันเป็น "ใช้งาน" หากกระบวนการเกิดขึ้นที่ต้องการสิ่งที่อยู่ในหนึ่งในหน้าเหล่านั้นหน้าสามารถกลับไปที่กระบวนการได้อย่างรวดเร็ว นั่นเป็นเหตุผลที่สแตนด์บายถือเป็นส่วนหนึ่งของการนับ "แคช" แต่สแตนด์บายก็เหมือนกับ "ว่าง" สำหรับการใช้งานอื่น ๆ เช่นเดียวกับ RAM ฟรี "เครื่องมือเพิ่มประสิทธิภาพหน่วยความจำ" ของคุณเพิ่งย้ายหน้าเว็บจำนวนมากจากสแตนด์บายเป็นฟรีเช่นคุณยิงแคชสแตนด์บาย [... ]
Jamie Hanrahan

[... ] โดยไม่ทำให้ RAM ใช้งานได้อีก เนื่องจาก "Standby" นั้นเป็น "ว่าง" เสมอ! ด้วย Vista และใหม่กว่า Superfetch สามารถใช้ส่วนหนึ่งของแสตนด์บายสำหรับการแคชไฟล์เชิงรุกได้ แต่หน้าเหล่านั้นยังคงสามารถนำไปใช้กับโปรแกรมอื่น ๆ ได้ตามต้องการ ดังนั้น SuperFetch จะไม่ลบหน้าใด ๆ ออกจาก "ว่าง" เช่นกัน กำจัด "ตัวจัดการหน่วยความจำ" มันส่งผลต่อประสิทธิภาพของระบบของคุณทำให้เกิดดิสก์ I / Os ที่ไม่จำเป็น
เจมี่ Hanrahan

-1

เพื่อแก้ไขปัญหานี้

ไปที่ start-run-msconfig จากนั้นให้บริการและลบเครื่องหมายออกจาก "รากฐานไดรเวอร์ Windows" คลิกตกลงและรีสตาร์ทเครื่อง

ข้อควรจำ - เฉพาะขั้นตอนที่กล่าวมาเท่านั้นจะช่วยแก้ปัญหานี้ได้ หากคุณปิดการใช้งานจาก services.msc ก็ยังคงมีการใช้งานในเวลาบูตระบบปฏิบัติการและจะปิดกั้นหน่วยความจำของคุณ

เพื่อตรวจสอบนี้ใช้เครื่องมือ


การปิดใช้งานบริการ WDF จะปิดใช้งานอุปกรณ์ใด ๆ ที่ขึ้นอยู่กับรุ่นของไดรเวอร์นั้น มันเป็นความคิดที่ไม่ดี
เจมี่ Hanrahan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.