คอมพิวเตอร์ใช้ทรัพยากรน้อยลงหรือไม่เมื่อโปรแกรมถูกย่อขนาด


คำตอบ:


67

ใช่. ตามที่ MS สนับสนุนการทำงานที่กำหนดไว้สำหรับการใช้งานลดลงจะถูกตัดแต่ง คุณสามารถตรวจสอบด้วยตัวคุณเองด้วย Process Explorer

นี่คือการทดสอบอินสแตนซ์เดียวของ Firefox 5.0 ใน Windows 7 x64 ที่มีแท็บเดียวของเว็บไซต์ ESPN.com ที่โหลด ค่าถูกอ่านโดยใช้ Task Manager

type                 not minimised  minimised     diff
------------------------------------------------------
working set               165,752k   163,768k  -1,984k
peak working set          169,624k   169,624k      N/A
mem (private working set) 121,600k   119,576k  -2,024k
commit size               135,576k   133,504k     -72k
paged pool                    396k       397k      +1k
np pool                        82k        81k      -1k
handles                        504        483      -21
threads                         34         31       -3
user objects                    40         44       +4
GDI objects                     71         75       +4

นี่คือการทดสอบอินสแตนซ์เดียวของ Paint.NET ใน Windows 7 x64 ที่มีรูปภาพเล็ก ๆ เปิดอยู่ แอพนี้เขียนใน Microsoft .NET ซึ่งแตกต่างจาก Firefox ซึ่งเป็น C / C ++

type                 not minimised  minimised     diff
------------------------------------------------------
working set               125,904k   125,256k    -684k
peak working set          217,836k   217,836k      N/A
mem (private working set)  61,844k    61,844k       0k
commit size               102,388k   102,384k      -4k
paged pool                    542k       541k      -1k
np pool                        59k        59k       0k
handles                        741        741        0
threads                         19         19        0
user objects                   276        273       -3
GDI objects                    489        491       +2

7
ว้าวสิ่งนี้น่าสนใจและคุณมี KB ที่จะสำรองข้อมูล +1
Supercereal

57
สิ่งนี้ไม่สามารถใช้ได้กับ Windows รุ่นใหม่ (7, Vista) บนระบบปฏิบัติการที่ทันสมัยหากจำเป็นต้องใช้หน่วยความจำสำหรับบางสิ่งระบบปฏิบัติการจะตัดแต่งชุดการทำงานที่มีถิ่นที่อยู่ของกระบวนการทั้งหมดย่อเล็กสุดหรือไม่ (ขึ้นอยู่กับว่าพวกเขาเข้าถึงหน่วยความจำหน้าล่าสุดได้อย่างไร) และถ้าไม่จำเป็นต้องใช้หน่วยความจำไม่ว่าจะด้วยเหตุผลใดก็ตามมันก็เป็นเรื่องโง่ ๆ ที่จะตัดมัน - เหตุใดจึงต้องลดประสิทธิภาพของแอปพลิเคชันลงเมื่อหน่วยความจำมีมากมาย
David Schwartz

6
ว้าวเพื่อให้คนไม่ชอบคำตอบ ... ไม่มีใครมีข้อพิสูจน์ที่ตรงกันข้าม? วิธีที่ฉันเห็นมัน Kinokijuf มีหลักฐานจริงพวกคุณบอกว่ามันใช้ไม่ได้กับ windows 7 และ vista แต่เสนอแหล่งที่มา ... พวกคุณไม่ได้ทดสอบ: \ ชุดการทำงานและหน่วยความจำที่จัดสรรเป็นสองสิ่งที่แตกต่างกัน . Process explorer เป็นวิธีเดียวที่จะทดสอบสิ่งนี้
Supercereal

5
ดูเหมือนว่าน่าสังเกตว่าการลดการใช้ทรัพยากรระบบเป็นเรื่องเล็กน้อย: ในตัวอย่างที่กำหนดโดยการย่อขนาดแอ็พพลิเคชันให้น้อยที่สุดชุดการทำงานจะลดลงเพียงประมาณ 1.2% เท่านั้น
bgvaughan

5
สังเกตเห็นการขาด Win32 devs ในเธรดความคิดเห็นนี้ มีเหตุการณ์ Win32 จำนวนมากที่ข้ามแอปพลิเคชั่นที่ถูกย่อขนาดเล็กสุด แม้ว่าจะไม่มีการประหยัดหน่วยความจำที่น่าสังเกต แต่ก็มีการประหยัดการใช้งาน CPU
surfasb

27

ใช่และไม่. พวกเขาจะใช้ทรัพยากรน้อยลงใน GPU ของคุณ - ไม่จำเป็นต้องรีเฟรชหน้าจอ - แต่ไม่ได้อยู่ในหน่วยความจำระบบหลักหรือ CPU ของคุณ

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

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


ฉันเกลียดการลงคะแนนตอบจริง ๆ แต่มันผิดปกติ ... ถ้าคุณถามฉันเมื่อ 10 นาทีก่อนฉันจะคิดว่าคุณพูดถูก
Supercereal

3
@ ลดจำนวนบรรทัดที่ละเมิดลงสำหรับฉันอย่างน้อยและทำไม downvote ย่อมาจาก: "พวกเขาจะใช้ทรัพยากรน้อยลงใน GPU ของคุณ - ไม่จำเป็นต้องรีเฟรชหน้าจอ - แต่ไม่ได้อยู่ในหน่วยความจำระบบหลักหรือ CPU ของคุณ" คำถามนี้ระบุอย่างชัดเจนว่า: "พวกเขาใช้หน่วยความจำและ CPU น้อยกว่าปล่อยให้มันใหญ่ที่สุด" ซึ่งคำตอบคือตาม MS อย่างน้อย (และฉันจะไว้วางใจ MS ที่นี่เนื่องจากพวกเขาเขียนมัน) ใช่มันใช้ทรัพยากรน้อยลง เขาไม่ได้ถามอะไรเกี่ยวกับ preformance ของแอปพลิเคชันในขณะที่ย่อเล็กสุดเพียง แต่มันจะใช้ทรัพยากรน้อยลง
Supercereal

14
@Kyle บทความ KB นั้นมีอายุ 5 ปี มันใช้ไม่ได้กับแผนการจัดการหน่วยความจำที่ทันสมัย (และหากคุณเห็นความคิดเห็นของฉันต่อคำตอบของ kinokijuf คุณจะเห็นว่าทำไมมันเป็นความคิดที่ไม่ดีตั้งแต่แรก - ยกเว้นระบบปฏิบัติการที่ไม่สามารถติดตามความใหม่ของการใช้หน้า)
David Schwartz

1
เชิงอรรถระบุว่าแอปเปิ้ลสำหรับ NT4, 2000 และ XP ฉันสงสัยว่ามีอะไรเปลี่ยนแปลงไปตั้งแต่นั้นมา
kinokijuf

4
และฉันสามารถยืนยันบนเครื่อง Vista ของฉัน (ด้วย Process Explorer) ว่าชุดการทำงานยังคงลดลง
kinokijuf

12

"Working Set" ไม่เหมือนกับ "Memory Usage"

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

ที่กล่าวว่าเกี่ยวกับการใช้งาน CPU: มีบางสิ่งที่เรียกว่าการเพิ่มระดับความสำคัญที่ได้รับจากระบบปฏิบัติการในเงื่อนไขบางประการซึ่งสามารถทำให้แอปพลิเคชันเบื้องหน้าใช้งาน CPU ได้มากขึ้น ดูรายละเอียดที่นี่


4

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

ดังนั้นเราคาดว่าโปรแกรมจะใช้ซีพียูในปริมาณเท่ากันเมื่อย่อเล็กสุดถ้าแอปพลิเคชันถูกเรียกใช้ฟังก์ชันพื้นฐานที่เหมือนกัน

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

นั่นคือหากคุณลดขนาดแอพพลิเคชั่นลงคุณจะทำให้แอพพลิเคชั่นแบบกราฟิกเข้ามาดูมากขึ้นดังนั้นจึงทำการแสดงผลแทนตอนนี้ภาระของ CPU อาจเพิ่มขึ้นเนื่องจากภาระงานกราฟิกเพิ่มเติม

ในการเปลี่ยนแปลงทั้งหมดที่เรากำลังพูดถึงที่นี่อาจจะไม่สำคัญเว้นแต่คุณจะใช้เครื่อง spec ที่ต่ำมาก


-1, สำหรับความไม่เกี่ยวข้อง สำหรับการเปรียบเทียบใด ๆ คุณต้องถือว่าCeteris paribus
Lie Ryan

2
ไม่ได้ตระหนักถึงการสันนิษฐานว่าเป็นสิ่งที่ไม่ดีเมื่อมีความชัดเจนและครอบคลุมทั้งความเป็นไปได้
iTom

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

1

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

สำหรับแอพพลิเคชั่นที่เน้นด้านกราฟิก (เช่น World of Warcraft หรือ Call of Duty 3) จะมีการลดลงอย่างมากในการใช้ GPU (หน่วยประมวลผลกราฟิก)


โปรแกรมแบบอินเทอร์แอคทีฟไม่ต้อง "จดจำเมื่อถูกย่อให้เล็กสุด" เพื่อใช้ CPU น้อยลงเนื่องจากไม่มีข้อความหน้าต่างแป้นพิมพ์ / เมาส์เพื่อตอบสนอง
Random832

@ Random832 ฉันไม่แน่ใจว่าสิ่งที่คุณหมายถึงทั้งหมด แต่ฉันหมายถึงการถ่ายทอดประเภทของโปรแกรม (เช่นเกม) ที่หยุดเมื่อมันหมดโฟกัส เกมเหล่านี้มักใช้พลังงาน CPU น้อยลงเมื่อย่อเล็กสุด
wizlog


0

แม้ว่าฉันจะไม่สามารถใช้ Windows 7 ได้อย่างเต็มที่เท่าที่ฉันรู้ แต่ใน Windows 8 โปรแกรมที่ย่อเล็กสุดถูกระงับไว้


นั่นสำหรับโปรแกรมคลาสสิคด้วยหรือไม่ จำเป็นสำหรับรถไฟใต้ดินเพราะคุณไม่สามารถปิดซอฟต์แวร์ได้
Journeyman Geek

ใช่อย่างน้อยนั่นคือสิ่งที่ฉันได้เห็นในรุ่นเบต้า (ตัวอย่างที่ใช้คือ Internet explorer รุ่นที่ไม่ใช่เมโทร)
soandos

ดีที่สุดที่จะรอจนกว่า Win8 จะวางจำหน่ายมากกว่าที่จะคาดเดาในสิ่งที่อาจจะหรือไม่อาจยกยอดจาก betas เร็ว ๆ นี้
Jeff Atwood

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