ไมโครซอฟท์ออกมาเล่าเบื้องหลังการปรับปรุง Windows 8 ให้บริโภคหน่วยความจำลดลงจาก Windows 7 ว่าทำอะไรไปแล้วบ้าง
การปรับปรุงหน่วยความจำขณะทำงาน (runtime memory usage) เป็นเป้าหมายสำคัญอย่างหนึ่งของ Windows 8 เนื่องจากว่า Windows 8 จะต้องรันบนอุปกรณ์พกพา (ที่เป็น SoC) ด้วย ทำให้อัตราการใช้แรมมีผลต่อพลังงานที่ใช้ (ยิ่งมีแรมเยอะ ยิ่งใช้พลังงานเยอะ) ดังนั้นไมโครซอฟท์ต้องพยายามบีบ Windows 8 ให้ใช้แรมน้อยลง
ไมโครซอฟท์ตั้งโจทย์ทางฮาร์ดแวร์ว่า Windows 8 จะใช้สเปกขั้นต่ำเท่ากับ Windows 7 เพื่อให้คอมพิวเตอร์ที่ใช้ Windows 7 สามารถอัพเกรดเป็น Windows 8 ได้อย่างราบรื่น ซึ่งใน keynote ของงาน BUILD ไมโครซอฟท์ก็แสดงให้ดูแล้วว่าเอา Windows 8 ไปรันบนเน็ตบุ๊กตัวเดิมที่ใช้ในงานเปิดตัว Windows 7 ปรากฏว่าใช้พลังของซีพียูและแรมน้อยลง
สิ่งที่ไมโครซอฟท์ปรับปรุงใน Windows 7 มีดังนี้
Memory combining
ตามปกติแล้ว โปรแกรมจะจองหน่วยความจำเผื่อใช้งานในอนาคต และเขียนค่าเริ่มต้นในหน่วยความจำ (initialize) ด้วยค่าที่เหมือนๆ กัน อย่างไรก็ตามโปรแกรมอาจไม่ได้ใช้พื้นที่หน่วยความจำที่จองเอาไว้ (อาจเป็นเพราะคาดเดาผิด ผู้ใช้ไม่ได้เรียกส่วนที่คาดว่าจะใช้) ทำให้หน่วยความจำเหล่านี้เสียเปล่า แถมในหลายกรณีมีหน่วยความจำที่จองไว้แต่ไม่ได้ใช้หลายชุดด้วย
ไมโครซอฟท์จึงใช้เทคนิคที่เรียกว่า memory combining คือรวมเอาหน่วยความจำที่จองไว้หลายชุด (แต่มีหน้าตาเหมือนกัน) ให้เหลือเพียงชุดเดียว ถ้าโปรแกรมต้องการใช้มากกว่าหนึ่งชุด วินโดวส์จะทำสำเนาหน่วยความจำให้เอง เทคนิคนี้ช่วยลดหน่วยความจำที่ต้องใช้ลงได้ประมาณ 10-100 MB ขึ้นกับการใช้งาน
ลดจำนวนเซอร์วิสบางตัวลง
หลักการนี้ตรงไปตรงมาครับ Windows 8 จะลดจำนวนเซอร์วิสที่ทำงานตอนเปิดวินโดวส์ลง 13 ตัว และย้ายเซอร์วิสบางตัวให้ทำงานแบบ manual/on demand แทนของเดิมที่เป็น always run
สิ่งที่ปรับปรุงเพิ่มขึ้นคือตัวเรียกเซอร์วิสเหล่านี้ให้ทำงานเฉพาะยามจำเป็นเท่านั้น เมื่อเสร็จแล้วก็รออีกพักหนึ่งเช็คว่างานเรียบร้อยดี จึงค่อยปิดเซอร์วิสนั้นลง
ตัวอย่างเซอร์วิสเดิมที่ถูกเปลี่ยนให้ทำงานแบบ on demand ได้แก่ Plug and Play, Windows Update, User Mode Driver Framework เป็นต้น (อย่างไรก็ตาม ไมโครซอฟท์ก็เพิ่มเซอร์วิสใหม่บางตัวเข้ามาใน Windows 8 โดยมี 2 ตัวที่รันอัตโนมัติตั้งแต่เริ่ม)
รีดประสิทธิภาพของตัววินโดวส์เองให้ใช้แรมน้อยลง
หลักการนี้ก็ตรงไปตรงมาเช่นกันครับ ไมโครซอฟท์ตรวจสอบว่าตัววินโดวส์เองเรียกหน่วยความจำอย่างไรบ้าง และดูว่ามีอะไรเรียกไว้แต่ใช้ไม่คุ้มหรือเปล่า ถ้าเป็นอย่างนั้นก็เปลี่ยนมัน
ไมโครซอฟท์เล่าว่าเริ่มกระบวนการตรวจสอบส่วนต่างๆ ของวินโดวส์หลังจากออก Windows 7 ได้ไม่นาน เพราะโค้ดหลายส่วนมีอายุยาวนานมากตั้งแต่สมัย Windows NT ยุคแรกๆ สรุปว่าลดได้อีก "หลายสิบ" MB ในการใช้งานทั่วๆ ไป
เรียกเดสก์ท็อปให้ช้าลง
หน้าจอหลักของ Windows 8 คือโหมด Metro ไม่ใช่เดสก์ท็อปแบบเดิม ดังนั้นถ้ายังไม่จำเป็นต้องใช้ Windows 8 จะโหลดเฉพาะส่วน Metro เท่านั้น แล้วค่อยโหลดส่วนเดสก์ท็อปขึ้นมาถ้าถูกเรียกใช้ (ลดได้ 23 MB ถ้าไม่ได้โหลดเดสก์ท็อป)
จัดลำดับความสำคัญของหน่วยความจำให้ละเอียดกว่าเดิม
Windows 8 สามารถแยกแยะได้ (ละเอียดกว่าเดิม) ว่าหน่วยความจำส่วนไหนจำเป็นต้องใช้ หน่วยความจำส่วนไหนกำลังจะไม่ใช้งาน
ตัวอย่างเช่น หน่วยความจำที่ใช้ตรวจหาไวรัสในไฟล์ใดๆ มักเป็นหน่วยความจำที่ใช้เสร็จแล้วทิ้งได้เลย แต่ Windows 7 กลับมองว่ามันมีความสำคัญเท่ากับ Excel ที่รันค้างไว้ ทำให้ขั้นตอนการกำจัดหน่วยความจำของ Windows 7 มีโอกาสจะไปตัดหน่วยความจำของ Excel แทนได้ (ซึ่งผู้ใช้จะรู้สึกว่า Excel ช้าลง)
แต่กรณีของ Windows 8 จะมองหน่วยความจำของการตรวจหาไวรัสเป็น 'low priority' และสามารถกำจัดหน่วยความจำส่วนนี้โดยไม่กระทบกับโปรแกรมหลักที่รันอยู่
ที่มา - Building Windows 8