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


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.