當前位置:
首頁 > 科技 > 從職業玩家角度看,Mac是如何做到快速待機快速喚醒的?

從職業玩家角度看,Mac是如何做到快速待機快速喚醒的?

從職業玩家角度看,Mac是如何做到快速待機快速喚醒的?

使用非旋轉式存儲設備,睡眠模式混合,平台優化。最近的 Windows 設備的睡眠改善也得益於這幾點。

非旋轉式存儲設備其實不用多提了,因為這個非常好理解,不然你喚醒個設備然後聽硬碟慢悠悠上電的聲音就知道為啥了。

再說睡眠模式混合。Mac 的睡眠至少是有多階段電源狀態的,Power Nap / Darkwake 是 S0(不知道有沒有用到 S0 子狀態,不過 XNU 源代碼里提了這件事),常規 S3,長期 S4。Power Nap 是開 CPU 一個核然後關掉 GPU 之類的耗電大戶,跑維護和連接任務,S3 和常規無異,S4 也是。不信你去把 MacBook 合蓋一周再打開,你會看到至少五六秒的黑屏再喚醒的

平台優化其實也不用多提。就說個事吧,在某 S0ix-enabled 的 Intel 參考平台上,插兩塊 AMD 顯卡和外接顯示器,喚醒就可以 10s 以上見了

最近的 Windows 平台睡眠的改善情況。Surface Pro 3+, XPS (最近的), ThinkPad X 之類的睡眠都是 Modern Standby / Connected Standby (whatever 名字),反正這個東西就叫 S0ix,這東西在 Windows 上很好使,直觀感受是比如睡眠時能聽歌、有推送,但是這些機器在 Linux 下 s2idle 普遍很慘(一覺睡去再也不醒,睡不著,睡眠耗電超高之類的)

從職業玩家角度看,Mac是如何做到快速待機快速喚醒的?

x86 上這個狀態需要平台支持並啟用;ARM Windows 上都是支持的(只要 ACPI 里聲明了 Low Power Idle Capable),Windows 假設 SoC DVCS 功能完好,直接 KiIdleLoop 了然後讓 SoC 自己處理電源管理。如何驗證平台狀態看下圖。

深層優化是要調 ME 和 PCH 的,which 你碰不著。短期睡眠它非常好用

從職業玩家角度看,Mac是如何做到快速待機快速喚醒的?

這種情況下一般平台硬體都不會睡得太死,睡眠的幾個階段如下:

  • Connection Phase (檢查當前有沒有活躍的 RDP 連接,有沒有程序要求暫停睡眠),如果有,在請求結束之前不進入下一個階段
  • Presence Phase (Windows 8.1+ 棄用,忽略)
  • Process Lifetime Manager (PLM) phase,檢查 Windows Store 應用後台,如果不是播放音樂等任務那麼暫停
  • Maintenance phase,如果需要跑自動維護,那麼在這時候跑維護任務,安裝更新之類的(現在你可以思考一下為什麼某些設備經常睡眠超級燙了)
  • Desktop Activity Moderator (DAM) phase,暫停所有桌面應用
  • Low-power phase,通知所有監聽低功耗事件的設備和驅動。平台準備進入低功耗狀態
  • Resiliency notification phase,通知網路子系統(LTE/其他 NIC)平台準備進入低功耗狀態,如果不支持 L3 包選擇和負載,這時候網卡進入 D3 電源狀態(幾乎是關掉了)
  • DRIPS,平台完成準備工作,SoC 可以選擇在這個時候的任意時間進入睡眠狀態,且這個操作對操作系統不完全透明( @Icenowy Zheng
  • 跟我說是這樣的)。操作系統會間隔一段時間醒來一下,檢查一下通知之類的,跑一下服務,一般用時一秒左右,然後睡回去。喚醒源可以通過中斷把 CPU 拉起來,因為是 S0 的子狀態,這個過程非常快,加上要求平台最好用非旋轉式存儲設備,所以喚醒也非常快。(其實混合存儲設備的 Surface Studio 喚醒也很快)

    現在理解一下為什麼最近的 Windows 設備喚醒很快了。

    好這個時候還有一個情況,就是你的網卡呆住了,那麼你喚醒時會卡死,然後想想為什麼 Surface (特別是 Pro 3)偶爾喚醒爆炸(

不過 S0ix 這東西很多 OEM 調不好(Dell 一些機器也在也在瞎搞,不信你開 powercfg /sleepstudy 然後看真相),所以選用它的並不多。

從職業玩家角度看,Mac是如何做到快速待機快速喚醒的?

帶有SSD的系統都該這樣,不然就是垃圾。Windows機器裝了SSD也是秒醒

系統休眠一般分至少三層,第一層是屏幕黑掉,但是內存帶電,CPU在休眠和活躍狀態交替,風扇還在轉,這種都是秒開,甚至不會斷開wifi,因為根本沒關

第二層是wifi斷掉系統徹底進入獨自休眠的狀態,但是CPU基本都是S3-S4以上的狀態(這裡不太確定Mac機器、CPU以及ACPI狀態之間的關係,但我看Mac供電電路至少有S0-S5),內存還在供電,這時候喚醒也是秒開,不過的確有從關到開的流程

第三層是把內存寫入硬碟,關閉CPU和內存,重開的時候讀回來。這時候可能需要5-10秒。當然休眠狀態下可能仍然會周期性喚醒,更新一下各種數據

mac拔電源休眠狀態一般是第二層1小時之後跳第三層,日常使用一般都是從第二層喚醒,再加上高速SSD,整體上感覺很快。Windows也可以配置成這樣,首先你需要高速SSD,然後改電源設置

從職業玩家角度看,Mac是如何做到快速待機快速喚醒的?

事實上和配置關係不大,同級別SSD的win喚醒一樣比macos/大部分Linux發行版慢。這是系統或者說是內核造成的原因

(實測過g752vs在win和Arch+kde環境下開蓋喚醒的速度,Arch的體驗無限接近於Mac(雖說有一定幾率登錄界面會崩潰,不過至少是有反應的),而win的話10次裡面能有三次不按電源強制重啟就已經算好的了。後來由於那台筆記本並沒有移動辦公需求,設置了合蓋僅關屏幕,才達到了可用的狀態

從職業玩家角度看,Mac是如何做到快速待機快速喚醒的?

自己的 Windows 台式機(家用)、另一台 Windows 台式機(辦公用)和 Surface Laptop 都是敲鍵盤/開蓋秒醒,就 Surface 3 時間長點;反觀我 MacBook Pro 2015/2017 開蓋都要等一下,甚至有的時候一個星期及以上不用,開蓋後沒醒,等了一會之後發現還沒醒,再去按電源,大約要好幾分鐘。

怎麼評論都在說我用的是假的 MacBook,我司每個人標配 iMac/MacBook Pro,我旁邊還有一大摞淘汰下來的 Mac Mini,事實是,這些東西出問題的概率比你們想的高的多。

從職業玩家角度看,Mac是如何做到快速待機快速喚醒的?

按說windows 和mac應該都一樣,但因為系統還要依賴於機器,而windows的機器什麼貨色都有,表現也各不相同;

另外這個主觀感受方面也影響也比較大;

以我自己為例,我有個tp t450;有個 mac 2012; mac很少關機,自買來之後就經常是蓋蓋就走,開蓋就用,而tp是之後才有的,因而延續了這個習慣,但是(劃重點),但是,在使用了幾次後,tp開不了機了,找了公司的技術,說是有靜電,開了後蓋有根線拔下來重新插了下就好了;在這之後,又出現過一次一樣的問題,之後tp就再也不敢不關機蓋蓋就走了,再然後就再沒遇上過這個問題

於是於我(普通用戶)而言,就形成了一種這個是windows的,蓋蓋待機功能不可靠的經驗(可能是錯誤經驗);

個別主觀體驗不能反映問題的普遍性,但問題確實存在,不論是因為系統,還是因為機器;

在用戶眼裡,筆記本是一個整體,有問題就是有問題,就這麼簡單

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!

TAG: |