-
1 # 繁星落石
-
2 # 伊辰動漫
首先表明下觀點,其實win10從休眠到喚醒也不需要超過5秒的時間,至於為什麼會提出這個問題,我大概猜想到是使用windows很少會採用睡眠方式吧!原因是Windows睡眠待機狀態耗電比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 普遍很慘(一覺睡去再也不醒,睡不著,睡眠耗電超高之類的)
x86 上這個狀態需要平臺支援並啟用;ARM Windows 上都是支援的(只要 ACPI 裡聲明瞭 Low Power Idle Capable),Windows 假設 SoC DVCS 功能完好,直接 KiIdleLoop 瞭然後讓 SoC 自己處理電源管理。如何驗證平臺狀態看下圖。
深層最佳化是要調 ME 和 PCH 的,which 你碰不著。短期睡眠它非常好用
這種情況下一般平臺硬體都不會睡得太死,睡眠的幾個階段如下:
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 然後看真相),所以選用它的並不多。
帶有SSD的系統都該這樣,不然就是垃圾。Windows機器裝了SSD也是秒醒
系統休眠一般分至少三層,第一層是螢幕黑掉,但是記憶體帶電,CPU在休眠和活躍狀態交替,風扇還在轉,這種都是秒開,甚至不會斷開wifi,因為根本沒關
第二層是wifi斷掉系統徹底進入獨自休眠的狀態,但是CPU基本都是S3-S4以上的狀態(這裡不太確定Mac機器、CPU以及ACPI狀態之間的關係,但我看Mac供電電路至少有S0-S5),記憶體還在供電,這時候喚醒也是秒開,不過的確有從關到開的流程
第三層是把記憶體寫入硬碟,關閉CPU和記憶體,重開的時候讀回來。這時候可能需要5-10秒。當然休眠狀態下可能仍然會週期性喚醒,更新一下各種資料
mac拔電源休眠狀態一般是第二層1小時之後跳第三層,日常使用一般都是從第二層喚醒,再加上高速SSD,整體上感覺很快。Windows也可以配置成這樣,首先你需要高速SSD,然後改電源設定
事實上和配置關係不大,同級別SSD的win喚醒一樣比macos/大部分Linux發行版慢。這是系統或者說是核心造成的原因
(實測過g752vs在win和Arch+kde環境下開蓋喚醒的速度,Arch的體驗無限接近於Mac(雖說有一定機率登入介面會崩潰,不過至少是有反應的),而win的話10次裡面能有三次不按電源強制重啟就已經算好的了。後來由於那臺筆記本並沒有移動辦公需求,設定了合蓋僅關螢幕,才達到了可用的狀態
自己的 Windows 桌上型電腦(家用)、另一臺 Windows 桌上型電腦(辦公用)和 Surface Laptop 都是敲鍵盤/開蓋秒醒,就 Surface 3 時間長點;反觀我 MacBook Pro 2015/2017 開蓋都要等一下,甚至有的時候一個星期及以上不用,開蓋後沒醒,等了一會之後發現還沒醒,再去按電源,大約要好幾分鐘。
按說windows 和mac應該都一樣,但因為系統還要依賴於機器,而windows的機器什麼貨色都有,表現也各不相同;
另外這個主觀感受方面也影響也比較大;
以我自己為例,我有個tp t450;有個 mac 2012; mac很少關機,自買來之後就經常是蓋蓋就走,開蓋就用,而tp是之後才有的,因而延續了這個習慣,但是(劃重點),但是,在使用了幾次後,tp開不了機了,找了公司的技術,說是有靜電,開了後蓋有根線拔下來重新插了下就好了;在這之後,又出現過一次一樣的問題,之後tp就再也不敢不關機蓋蓋就走了,再然後就再沒遇上過這個問題
於是於我(普通使用者)而言,就形成了一種這個是windows的,蓋蓋待機功能不可靠的經驗(可能是錯誤經驗);
個別主觀體驗不能反映問題的普遍性,但問題確實存在,不論是因為系統,還是因為機器;
在使用者眼裡,筆記本是一個整體,有問題就是有問題,就這麼簡單。
回覆列表
因為Mac本質上沒有真正關機,而是進入了類似Windows待機狀態的狀態,登入時間也差不多。只是macOS對待機功耗控制做得比Windows好,所以長時間待機也不會像Windows一樣導致沒電。Mac是真正適合長時間移動辦公的選擇。