การใช้หน่วยความจำมากเกินไป


13

ฉันรู้สึกแบบนี้มาระยะหนึ่งแล้วดูผู้จัดการงานด้านจิตใจว่ามีหน่วยความจำกายภาพเท่าไรและสังเกตเห็นความแตกต่างขนาดใหญ่ ในที่สุดฉันก็ไปวัดมัน การรับผลของรายการงานและการเพิ่มให้ประมาณ 3.87 GB ตัวจัดการงานบอกฉันว่าฉันใช้หน่วยความจำ 4.6 GB ดูเหมือนว่าจะมีความแตกต่างกันอย่างมาก มันไปไหน

แก้ไข: ดังนั้นชัดเจนมันจะไม่ไปดึง มันได้รับการแนะนำว่าส่วนหนึ่งของระบบปฏิบัติการ แต่ไม่ได้เป็นส่วนหนึ่งของกระบวนการระบบใด ๆ หากเป็นจริงโปรดหาวิธีที่จะทำให้ระบบปฏิบัติการบอกฉันได้ว่ามีการใช้หน่วยความจำเท่าใด เนื่องจากฉันต้องการทราบว่าหน่วยความจำไปที่ใดการขอให้ฉันดูความแตกต่างไม่ได้ช่วยอะไรฉันเลย

แก้ไข 2: ไม่ใช่สิ่งต่อไปนี้:

  1. เคอร์เนล
  2. แคช
  3. หน่วยความจำที่สงวนไว้สำหรับฮาร์ดแวร์

รูปภาพของทรัพยากรที่ใช้ ไม่แน่ใจว่ามันจะทำอะไร แต่ ... ป้อนคำอธิบายรูปภาพที่นี่


คุณใช้ระบบปฏิบัติการอะไร? คุณจะได้คำตอบที่ดีกว่ามีข้อมูลเพิ่มเติม :)
— คามแจ็กสัน

ขออภัยพบแท็กใหม่ :)
— soandos

@soandos: คุณได้ลองปิด superfetch และ rebooting แล้วหรือยัง? มันสร้างความแตกต่างหรือไม่?
— user541686

ใช่ฉันทำและไม่ทำไม่ได้แม้ว่าจะเป็นการดีที่ได้ทราบว่าการดึงข้อมูลล่วงหน้าของหน่วยความจำใช้เวลาเท่าใด
— soandos

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

คำตอบ:


5

ผมขอแนะนำให้ดาวน์โหลดSysinternals Suite จากไมโครซอฟท์ มันมียูทิลิตี้หลายอย่างที่จะให้ข้อมูลมากกว่าที่ Task Manager ทำ ดูยูทิลิตี้ Process Explorer, RAMMap, VMMap และ Process Monitor ในการรับข้อมูลจากพวกเขาส่วนใหญ่คุณอาจต้องทำการกำหนดค่าบางอย่างเพื่อเปลี่ยนแปลงข้อมูลที่จะแสดง

นอกจากนี้เนื่องจากคุณสนใจหน่วยความจำ Windows นี่คือชุดบทความบล็อกจาก Mark Russinovichหนึ่งในผู้พัฒนา / ผู้ก่อตั้ง Sysinternals มันจะช่วยให้เข้าใจถึงข้อมูลที่สาธารณูปโภคมีให้


RAMMap ดูเหมือนจะบอกฉันว่า Task Manager กำลังใช้งาน RAM เกินกว่า 100MB แต่ตามรายการหน่วยความจำที่ฉันสามารถดึงได้โดยใช้ tasklist RAMMap ยังทำงานเกิน 200MB (tasklist +200 = RAMMap, RAMMap + 100 = taskmanger)
— soandos

1
ฉันไม่แน่ใจในสิ่งที่คุณเห็นและฉันไม่ได้อยู่ในเครื่อง Windows เพื่อค้นหา อย่างไรก็ตามหากคุณยังต้องการที่จะเจาะลึกลงไปให้ถามในฟอรัม Sysinternals มีบางคนที่ฉลาดมาก ๆ ที่เข้าร่วมภายใน Windows พวกเขาจะคุ้นเคยกับคะแนนปลีกย่อยของการจัดการหน่วยความจำของ Windows มากขึ้น
— Joe Internet

สำหรับการอ้างอิงในอนาคตนี่คือ TechEd 2011 ของ Mark Russinovich ที่พูดถึงการจัดการหน่วยความจำของ Windows: channel9.msdn.com/Events/TechEd/NorthAmerica/ …
— Joe Internet

"คำตอบ" นี้แม้ว่าจะได้รับการยอมรับก็ไม่ตอบคำถาม! มันเป็นเพียงการแนะนำเครื่องมือและการอ่านเพื่อการสอบสวน
— Jamie Hanrahan

8

Windows 7 ใช้หน่วยความจำ 'ที่ไม่ได้ใช้' เพื่อจัดทำสิ่งต่างๆเพื่อให้ทำงานได้เร็วขึ้น หากคุณต้องการหน่วยความจำนี้มันจะเพิ่มขึ้น

มันเป็นคุณสมบัติไม่ใช่ข้อผิดพลาด;)

จากTechNet

หลังจากที่คุณใช้ระบบ Windows Vista มาระยะหนึ่งคุณจะเห็นจำนวนตัวนับหน่วยความจำกายภาพฟรีในหน้าประสิทธิภาพของตัวจัดการงาน นั่นเป็นเพราะ SuperFetch และการแคช Windows มาตรฐานใช้ประโยชน์จากหน่วยความจำกายภาพที่มีอยู่ทั้งหมดเพื่อแคชข้อมูลดิสก์ ตัวอย่างเช่นเมื่อคุณบูตครั้งแรกหากคุณเรียกใช้ตัวจัดการงานทันทีคุณควรสังเกตว่าค่าหน่วยความจำว่างลดลงเมื่อจำนวนหน่วยความจำแคชเพิ่มขึ้น หรือถ้าคุณเรียกใช้โปรแกรมหิวหน่วยความจำแล้วออกจากมัน (ฟรีแวร์ "RAM optimizers" ใด ๆ ที่จัดสรรหน่วยความจำจำนวนมากแล้วปล่อยหน่วยความจำจะทำงาน) หรือเพียงแค่คัดลอกไฟล์ขนาดใหญ่จำนวนฟรีจะ เพิ่มขึ้นและกราฟการใช้หน่วยความจำทางกายภาพจะลดลงเมื่อระบบเรียกคืนหน่วยความจำที่จัดสรรคืน อย่างไรก็ตามเมื่อเวลาผ่านไป SuperFetch จะทำการแคชซ้ำกับข้อมูลที่ถูกบังคับให้ออกจากหน่วยความจำ


1
1) เหตุใดจึงไม่แสดงรายการภายใต้หน่วยความจำสำหรับกระบวนการนั้น 2) ฉันจะรู้ได้อย่างไรว่านี่เป็นกรณี?
— soandos

ฉันเชื่อว่า superfetch อยู่ภายใต้ svchost อาจนับเป็นหน่วยความจำเคอร์เนล คุณสามารถลองเปิดและปิด superfetch เพื่อตรวจสอบ
— Journeyman Geek

มันไม่ทำอะไรเลย
— soandos

หน่วยความจำที่ใช้โดย Superfetch อยู่ในรายการหน้าสแตนด์บายและนับเป็นส่วนหนึ่งของ "ว่าง" มันไม่นับว่าเป็น "ใช้งาน" เพราะสามารถ repurposed (ดึงออกจากรายการสแตนด์บายและนำไปสู่กระบวนการ) เหมือนกับทุกสิ่งทุกอย่างในรายการสแตนด์บายและทุกอย่างในรายการฟรีและศูนย์ด้วย
— เจมี่ Hanrahan

5

ตัวเลขที่คุณเห็นนั้นไม่ชัดเจนทั้งหมดและควรใช้เพื่อเป็นตัวบ่งชี้เท่านั้น

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

คุณจะพบคำอธิบายเพิ่มเติมในฉันจะตีความแท็บประสิทธิภาพของตัวจัดการงานได้อย่างไร แต่ฉันเลือกที่จะพูดส่วนนี้:

คุณคาดหวังอะไรจากโปรแกรมที่เรียกตัวเองว่า "ตัวจัดการงาน" อย่างไรก็ตาม ไม่มีสิ่งใดที่เรียกว่า "งาน" ในเคอร์เนลระบบปฏิบัติการ - ระบบปฏิบัติการมี "กระบวนการ" และ "เธรด" DOS มี "งาน" ฮาร์ดแวร์ของ Intel มีโครงสร้าง "งาน" แต่ระบบปฏิบัติการไม่ได้ใช้เพราะมันเร็วกว่าที่จะทำเอง

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


ดังนั้นฉันควรใช้โปรแกรมใดในการคิดออก ตัวจัดการภารกิจ PS มีหน่วยความจำเคอร์เนลแสดงอยู่
— soandos

1
ไม่มีโปรแกรมใดโปรแกรมหนึ่งที่จะให้ข้อมูลทั้งหมดแก่คุณ ตัวจัดการงานจะให้ข้อมูลและการประมาณค่าตัวจัดการอุปกรณ์สามารถบอกเกี่ยวกับอุปกรณ์หน่วยความจำWinObjเกี่ยวกับวัตถุหน่วยความจำ แหล่งที่ดีที่สุดคือการตรวจสอบทรัพยากรที่เรียกจากแท็บประสิทธิภาพของตัวจัดการงาน (และที่อื่น ๆ ) ซึ่งจริงๆแล้วเป็นการเปลี่ยนที่ทันสมัยของตัวจัดการงาน
— harrymc

ตัวจัดการทรัพยากรให้หมายเลขภายใน 15 ของตัวจัดการงาน
— soandos

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

ความคิดที่ว่า Task Manager เป็น "โปรแกรม Windows ที่เก่ามาก" นั้นโง่ มีการอัปเดตกับทุกเวอร์ชั่นของระบบปฏิบัติการเหมือนกับทุกอย่าง สำหรับ "ตัวเลขที่คุณจะได้รับ" คุณยังไม่ได้ใช้ Performance Monitor ใช่ไหม
— เจมี่ Hanrahan

3

อย่างที่คุณอาจสังเกตเห็น Task Manager สามารถให้ภาพรวมที่เรียบง่ายของคุณว่าแอปพลิเคชันส่วนใหญ่มีผลกระทบต่อระบบของคุณอย่างไร หากคุณต้องการที่จะขุดลงในแคชใน RAM และอื่น ๆ คุณต้องเข้าไปที่ Performance Monitor จะใช้งานบางอย่างสำหรับคุณในการสร้างชุดตัวนับของระบบเพื่อตรวจสอบระบบของคุณ

คุณสามารถไปที่นั่นได้ด้วยการเรียกใช้ compmgmt.msc หรือหน้าต่างค้นหา "การจัดการคอมพิวเตอร์" และทางด้านซ้ายมือคุณจะเห็นแผนผังประสิทธิภาพที่คุณสามารถขยายและขุดลงไปได้

นี่คือข้อมูลอ้างอิงสำหรับเครื่องมือบางอย่างที่มี: http://technet.microsoft.com/en-us/library/cc749249.aspx


ในขณะที่ฉันเห็นว่ามันเป็นเครื่องมือที่เจ๋งมากที่สามารถทำสิ่งต่าง ๆ ได้มากมาย (ตามที่เห็นจากการที่มีหน่วยความจำเหลืออยู่มากมายฉันไม่มีความคิดเลยว่าฉันกำลังมองหาอะไรอยู่ความคิดใด ๆ ?
— soandos

นอกจากนี้ตัวเลือกเพิ่มตัวนับมีแนวโน้มที่จะติดกับหน้าจอของฉันและฉันต้องเปลี่ยนความละเอียดไปมาด้วยตนเองเพื่อแก้ไข (การรีเฟรชใช้งานไม่ได้) ไม่ใช่ความผิดของคุณฉันรู้
— soandos

3

อาจมีการใช้หน่วยความจำสำหรับเคอร์เนล การใช้Process Explorerเราสามารถเห็นรายละเอียดหน่วยความจำระบบที่ละเอียดมากขึ้น:

ข้อมูลหน่วยความจำเคอร์เนล

ที่นี่ฉันได้เน้นจำนวนหน่วยความจำที่ใช้โดยเคอร์เนลซึ่งเป็น Paged WS + Nonpaged หรือประมาณ 300MB ของหน่วยความจำ นี่เป็นระบบที่เพิ่งเริ่มต้นใหม่โดยมีเพียงเว็บเบราเซอร์และแอปพลิเคชั่นอื่น ๆ บางตัวเปิดอยู่แม้ว่าจะมีการโหลดจำนวนมากระบบภายในบ้านของฉันจะแบ่งหน่วยความจำเคอร์เนลได้อย่างง่ายดาย 500MB หรือแม้แต่ 700MB


ฉันดูที่และไม่ให้เพียงพอ ขอบคุณค่ะ
— soandos

คุณถามถึงความแตกต่างระหว่างหมายเลข Commit และหน่วยความจำกายภาพหรือไม่
— Darth Android

ไม่ฉันถามว่าทำไมเมื่อฉันเรียกใช้เครื่องมือต่าง ๆ ที่ควรให้ฉันเป็นตัวเลขเดียวกันฉันจะได้ตัวเลขต่างกัน
— soandos

2

@soandos คุณคำนึงถึงจำนวนหน่วยความจำของวิดีโอที่ดึงมาหรือไม่? มีความเป็นไปได้อย่างมากว่าวิดีโอกำลังดึง RAM ขนาด. 73 GB คุณมีการ์ดแสดงผลที่ดีในเครื่องนี้หรือไม่? ถ้าไม่มันจะใช้ RAM แบบนี้ (เท่าที่ฉันรู้) ถ้าฉันผิดใครบางคนโปรดมาที่นี่ แต่ฉันเชื่อว่านี่อาจเป็นผลของการดึงวิดีโอจาก RAM


ฉันมี Nvidia GTS 360M ไม่ใช่การ์ดแสดงผลที่ดี แต่มีหน่วยความจำ GB
— soandos

คุณใช้จอภาพแบบใดที่คุณใช้ความละเอียดใด นอกจากนี้คุณกำลังทำงานวิดีโอเข้มข้นเช่นเล่นเกมที่ 1080p หรือไม่? และการ์ดหน่วยความจำชนิดใดที่คุณใช้ (เช่น DDR1, DDR2, DDR3, DDR5) ฉันจะค้นหามันด้วยตัวเอง แต่ฉันลองกับรุ่นการ์ดแสดงผลของใครบางคนและสังเกตเห็นว่าพวกเขาสร้างมันขึ้นมาพร้อมกับ RAM ประเภทต่าง ๆ ...
— David

มาตรฐานกับคอมพิวเตอร์ 1920x1080 ไม่มีความคิด มีวิธีวัดเพียงนี้ไหม
— soandos

ปกติแล้วมันจะพูดบนบรรจุภัณฑ์ฉันไม่แน่ใจ หากคุณรู้รุ่นของการ์ดที่แน่นอนคุณสามารถค้นหาทางอินเทอร์เน็ตได้ หากไม่ใช่การ์ดวิดีโอที่ทรงพลังมาก (โดยใช้ DDR2, DDR1) และคุณกำลังใช้ 1920x1080 กับจอภาพขนาดใหญ่ (เช่นฉันกำลังใช้ TOC TV ขนาด 46 นิ้วของ Samsung เป็นจอมอนิเตอร์ที่บ้าน) คุณสามารถเผาผลาญ หน่วยความจำจำนวนมากบนวิดีโอ ... ฉันไม่แน่ใจว่ามีวิธีดูว่าวิดีโอของคุณใช้งาน RAM เท่าใดฉันจะทำการวิจัยเกี่ยวกับเรื่องนี้ในตอนนี้แม้ว่าฉันจะแสดงความคิดเห็นกลับมาหรือไม่ว่าฉันจะพบสิ่งใด ฉันต้องการช่วยคุณให้มากที่สุด
— เดวิด

ฉันกำลังตรวจสอบโปรแกรมนี้เพื่อดูว่ามันอาจมีสิ่งที่เรากำลังมองหา มันคือ SiSoftware Sandra Lite 2011.2.17.47 คำอธิบายระบุว่ามันทำในสิ่งที่เรากำลังมองหาเช่นแรมวิดีโอที่ใช้ไป
— David

1

ความแตกต่างที่ฉันคิดว่าคุณเห็นไม่ใช่เครื่องมือที่ไม่สามารถมองเห็นหน่วยความจำที่ใช้ แต่เป็นเพราะรูปแบบการวัดที่แตกต่างกัน ฉันไม่สามารถอธิบายสิ่งนี้ได้ดี แต่โชคดีที่ฉันไม่จำเป็นต้องทำ Mark Russinovich of Sysinternalsชื่อเสียงได้เขียนบทความที่ดีเกี่ยวกับประสิทธิภาพของกระบวนการใน Windows ส่วนเกี่ยวกับหน่วยความจำกายภาพและหน่วยความจำเสมือนควรอธิบายสิ่งที่คุณเห็น


ไม่นั่นไม่ใช่ปัญหา ฉันกังวลกับจำนวนทั้งหมดมากกว่าที่เก็บ (RAM หรือ HD)
— soandos

0

ฉันคิดว่าฉันแก้ไขมัน!

ฉันเพิ่งเจอเคล็ดลับเกี่ยวกับ RAMMap และมันกลับกลายเป็น µTorrent!

ไม่ใช่utorrent.exeตัวเอง แต่ไฟล์ที่แชร์โดยμTorrent - อย่างน้อยในกรณีของฉัน: ไฟล์หนึ่งไฟล์ใช้มากกว่า 600 MB และมากกว่า 200 MB เป็นต้น


-1

หน่วยความจำบางส่วนใช้เป็นแคช ทันทีที่คุณต้องการหน่วยความจำนี้จะมีการเปิดตัวโดยอัตโนมัติ ดังนั้นไม่จำเป็นต้องกังวล


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