微軟Windows8中引入全新的Metro界面,針對Metro應用的電源使用效率,微軟采取特別的優化策略,應用被掛起到後台後,並不會使用CPU,從而讓CPU進入進入低功耗狀態。今日微軟在官方博客中撰文,講述Metro應用的內存回收機制。
暫停的Metro應用被保存到內存中:
Metro樣式應用同桌面應用程序不同,不管是否在前台顯示,它們經常處於暫停狀態。暫停時,Metro應用同內存處非聯系狀態。
若沒有內存容量壓力,這是極有效的狀態,內存讓Metro應用保持著備戰狀態。若內存容量有所限制,這些暫停的應用可將內存供給正在運行的程序。
Metro應用暫停情況下的內存回收機制:
在Win8消費者預覽版中,可以有效的將暫停應用的設置寫入磁盤中,當系統檢測內存吃緊時,可以釋放內存。這一過程類似於應用程序的冬眠,並時刻做好被喚醒的准備。
啟動內存回收:
在具備2GB內存的PC上開啟多個Metro應用,這些程序處於後台運行因此被Windows暫停。然後開啟更多的Metro樣式應用,以便觸發內存回收機制。在這一實驗中,釋放出250MB的物理內存給其他應用,而無需關閉現有的處於暫停狀態的應用。
在進行上述充分消耗內存的測試之後,在喚醒前期被被暫停的應用:
以“歌詞”這個Metro應用為例,被喚醒後系統開始向其分配內存。
注意:當內存消耗到達關鍵點之後,將會進行關閉Metro應用的操作。當然,進行該操作之前,會確保運行盡可能多的應用。