Windows 8 中的運行時記憶體減少

來源:互聯網
上載者:User
文章目錄
  • 記憶體使用量目標
  • 工作管理員中的記憶體使用量比較
 

Windows 8 的運行時記憶體使用量是確定 Windows 8 系統要求以及將承載 Windows 8 的大量裝置類型的一個重要因素。如您所知,我們要在基於 SoC 的低功耗裝置上交付完整的 Windows 8 體驗。這就使得保留大量記憶體供多個並行應用程式使用並保持裝置的整體響應能力變得更為重要。

一個不是特別顯而易見的情況是,最大程度減少低功耗平台上的記憶體使用量可延長電池壽命。這是怎麼回事?在任何 PC 上,RAM 都在不斷地消耗電能。如果作業系統使用大量記憶體,就會迫使裝置製造商加入更多物理 RAM。主板上的 RAM 越多,它消耗的電能就越多,電池壽命就越短。有些情況下,平板裝置上的額外 RAM 會使平板裝置的電池壽命縮短數天,使您無法坐在咖啡桌前通過平板裝置瞭解外面的世界。

記憶體使用量目標

從一開始,我們對 Windows 8 設定的目標就是採用與 Windows 7 相同的系統要求。我們知道如果我們做得更好,即使保持發布的要求相同,應用程式也會有更多的資源可以使用。回想起 2009 年“低端”硬體的樣子,而現在再也找不到類似 256MB 記憶體模組這樣的古董,會覺得很有意思。我們想要確保使用
Windows 7 時代的硬體的人們可以選擇將其現有電腦輕鬆地升級到 Windows 8 並利用 Windows 8 提供的功能。根據我們從我們的效能測試基礎結構中故意保留的舊式電腦得到的經驗,我們還預計在 Windows 7 發布之前生產的許多電腦將能夠運行 Windows 8。

Windows 8 的一項重要任務是在尋找機會減少現有功能消耗的記憶體以及整個主板消耗的記憶體的同時,為新功能騰出空間。Windows 8 很好地實現了我們自己設定的目標。

工作管理員中的記憶體使用量比較

準確比較 Windows 8 與 Windows 7 記憶體使用量的最簡單的方法是將這兩種作業系統同時安裝在一台 1GB RAM 電腦上(最低作業系統 RAM 要求),然後在它們已經過多次重新啟動並閑置一段時間後對其進行比較。

Windows 工作管理員通過其“正在使用”統計資訊提供系統記憶體的主要視圖(詳情請參見本文檔)。下面的圖形比較了運行 Windows 7 和 Windows 8 的同一台電腦在閑置時的記憶體使用量情況,這台機器是 Steven 在最近的 Build 大會主題發言時使用的迷你筆記型電腦,已經用了三年多。


1 – Windows 7 SP1 中的記憶體使用量


2 – Windows 8 中的記憶體使用量

構成電腦的特定硬體、驅動程式的記憶體使用量甚至是已耗用時間都會造成差異,因此不同電腦上的記憶體結果將有所不同(甚至同一電腦上的記憶體結果在不同時間也不盡相同)。儘管如此,還是可以看出,相對於 Windows 7 而言,Windows 8 在這方面做得更好一些。

為了使測試電腦上的操作更有趣,請轉到裝置管理員並禁用您的顯示適配器(卸載圖形驅動程式)。您絕不能像這樣來運行電腦,但這可以給出更準確的 Windows 本身的記憶體使用量估計值。通過禁用圖形驅動程式,在閑置一段時間後,上述電腦的記憶體使用量減少了 200MB。

注意:對於 Windows 8,其全新安裝中還將包含擴充的 Windows Defender 技術,該技術首次納入了完整的反惡意程式碼軟體功能,根據
Jason 撰寫的“保護您免遭惡意軟體侵害”博文所述,該技術還針對記憶體和資源使用進行了最佳化。(Windows 7 的全新安裝中不存在此功能,建議您添加安全軟體。)

在 Windows 8 中騰出空間

我們進行了數百項特定更改來最大限度地減少 Windows 8 中的作業系統記憶體使用量。在此我將介紹幾個協助大幅節省記憶體的特定領域。

記憶體組合

在評估典型的運行中 PC 上的 RAM 內容時,我們發現記憶體的許多部分都包含相同的內容。系統 RAM 之間冗餘的資料副本使我們有機會減少記憶體佔用,甚至是服務和作業系統組件的記憶體佔用。

怎麼會發生這種情況呢?應用程式有時會分配記憶體以供將來使用,並將其全部初始化為相同的值。應用程式實際上可能永遠都不會使用該記憶體,因為使用者可能永遠都不會調用某些功能。如果多個運行中應用程式同時執行該操作,系統中將會出現冗餘記憶體副本。

記憶體組合是一種方法,通過這種方法,Windows 可以在正常活動期間高效地評估系統 RAM 的內容,並找到所有系統記憶體之間的重複內容。然後 Windows 會釋放重複內容,只保留單個副本。如果應用程式以後嘗試寫入記憶體,Windows 將為其提供一個專用副本。所有這一切都在記憶體管理器中悄悄進行,不會對應用程式造成影響。該方法可以釋放數十至數百 MB 的記憶體(具體取決於同時啟動並執行應用程式數量)。

服務更改和縮減

配置為始終啟動並執行作業系統服務是環境記憶體使用量的一個重要根源。在 Windows 8 規划過程中評估一系列作業系統服務時,我們決定刪除其中的大量服務(13 個),將一組不同的服務改為“手動”啟動,同時還使一些“始終運行”的服務切換為“按需啟動”模式。在該模式中,作業系統中的“觸發器”(如串連裝置或網路地址可用)將導致發生以下情況:

  1. 服務啟動。
  2. 服務執行其操作(可能是任何操作)。
  3. 服務閑置一段時間以確保沒有任何其他需要執行的操作,然後
  4. 服務退出。

您會發現,在 Windows 8 中,隨插即用、Windows Update 和使用者模式驅動程式架構服務都是觸發啟動,而在 Windows 7 中,這些服務始終在運行。

當然,我們向 Windows 8 中添加了大量新功能(和新代碼)。這些新功能的其中一部分打包為新服務的形式。在這些新服務中,只有兩個是自動啟動的;所有其他服務都是手動啟動或觸發啟動。

使用更少的記憶體執行同一作業

在 Windows 運行應用程式和執行它自己的系統日常管理時,程式檔案和資料會從磁碟載入到主記憶體中。在迄今為止的 Windows 7 和 Windows 8 開發過程中,我們分析了正常執行期間的記憶體段(頁面)及其引用頻率。這裡要說的是,如果您要支付分配記憶體段的費用,最好經常使用(引用)它。如果您不經常引用該記憶體但仍然需要它,則應將其與其他內容進行整合。

在我們發布 Windows 7 後不久,我們向多個低層級 Windows 組件應用了一種類似方法,這些組件可追溯到 NT 的早期(20 世紀 90 年代早期)。所做工作包括重建代碼體繫結構和更改資料結構以便將記憶體的“熱”部分(頻繁引用)與“冷”部分完全分離。通過緊密整合熱項目,我們降低了整體運行時記憶體開銷。

考慮到隨時可能發生的變化(低層級作業系統),我們希望儘早完成計劃中的工作以便有足夠的時間來應對變化。截至目前,這些變化在 Windows 8 上已有所體現,這是近兩年來數千名 Microsoft 員工使用該產品完成其日常工作的結果。我們已經看到一致的成果表明普通電腦上的記憶體使用量可降低數十 MB。

“案頭系統”的延遲初始設定

早在六月份,Steven 和 Julie 就首次介紹了 Metro 風格使用者介面。我們預計許多使用平板電腦的人會在該環境中花費大量時間,通常是使用 Metro 風格應用程式。在那次的示範過程中,我們還示範了對於 Windows 8,您還可以引入您的現有應用程式,並在非常熟悉的案頭環境中使用它們。

從記憶體的角度來看,我們利用了這樣一個事實,即,將會有一組裝置,使用者在使用這些裝置時幾乎所有時間都停留在沈浸式的 Metro 風格使用者介面中。在這種情況下,Windows 8 只在必要時初始化案頭環境特有的作業系統組件。這是記憶體節約的另一個原因,可立即節約大約 23MB。(請注意,工作管理員在案頭系統中運行,因此上面顯示的記憶體數字包括工作管理員開銷。)

更精細的記憶體優先順序劃分

在確定應用程式和系統組件的記憶體配置的優先順序方面,Windows 8 有更好的方案。這意味著,Windows 可以更明智地判斷哪些記憶體應該保留,哪些記憶體應該立即移除。

例如,防毒程式 (AV) 會在其他程式開啟檔案時對檔案進行各種檢查。AV 程式分配用來檢查病毒簽名的記憶體通常是一次性分配(不太可能會再次需要該特定記憶體)。在 Windows 7 中,該記憶體被視為與系統中的其他記憶體(例如,Microsoft Excel 的運行執行個體所分配的記憶體)具有相同優先順序。如果記憶體變得稀缺,Windows 7 最終可能會移除協助其他運行中應用程式(如 Excel)對使用者做出響應的記憶體,這種情況下,這種做法不是保持系統響應能力的最佳選擇。

在 Windows 8 中,任何程式都可以將記憶體配置為“低優先順序”。這是向 Windows 發出的一個重要訊號,也就是說,當存在記憶體壓力時,Windows 可以移除該低優先順序記憶體以騰出空間,而且不會影響維持系統響應能力所需的其他記憶體。

總的來說,我介紹了我們在減少 Windows 8 中的記憶體使用量方面的理念和採取的方法。您已經看到了一些樣本結果,我只是淺顯地探討了迄今為止我們在這方面所做的一些工程設計工作。我壓根沒有討論的一件事是 Windows 8 應用程式模型,以及為了使新的 Windows 8 應用程式“以更友好的方式使用記憶體”所做的流程生命週期更改。請在
//build/ 內容和將來的博文中查看這方面的資訊,因為它也是顛覆性改造 Windows 過程中非常重要的一部分。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.