為什麼用 MacBook Air 看 Flash 視頻會發熱嚴重?

都說蘋果放棄了flash,那為何優酷一些主流網站還在用flash,為什麼在macbook air 上看flash的體驗就那麼差?對比台式機和普通windows筆記本感覺差距不是很大,而在air上感覺看優酷超清flash像打大型遊戲一樣,尤其是在夏天。建議用媽媽不發熱計劃吧,溫度直線下降!!


摘自V2EX,詳細內容在這裡:有沒有同學詳細的解釋一下為什麼macbook pro/air 播放flash 會那麼發熱?

樓主疑惑的應該是兩個不同但相關的問題:
一是為什麼 flash@osx 會使 cpu 明顯發熱,但 flash@win 為什麼就不那麼熱;
二是同樣是高 cpu 負荷的解壓縮工作為什麼就不熱。

先解釋下問題三:
core i 系列 cpu 有一項叫做 Turbo Boost 的單核心加速技術,可以依據功率和散熱情況短時間提高單一核心的運行頻率,加速時的功耗要高於無加速情況下多核心滿載的功耗。
flash 是單核心依賴嚴重的應用,而虛擬機和解壓縮可以充分利用多核心。前者會觸發加速,因而實際 cpu 功耗和發熱要超過後者。

至於 flash 的運行效率問題,只能說 @win 比 @osx 確實要好得多,這與兩個系統的圖形渲染架構有關。絕大多數 flash 以繪圖工作為主,win 版本的 flash 解釋器更接近圖形渲染後端,而蘋果出於安全以及全局考量,拒絕 flash 解釋器介入圖形渲染的流程,使得 flash 渲染需要走前級圖形介面,效率上自然有差距。
這也是 adobe 抨擊蘋果不合作的地方。osx 的硬體加速長期落後於 windows 也是類似的結果。

PS
作為一種跨平台解決方案,flash 和 java 一樣,不得不向效率作出妥協。而在 v9 引入 JIT 技術之後,除了尋求深度系統集成和硬體級加速,flash 已經沒有再度提高運行效率的手段了。
至於 adobe 不思進取,看看 adobe 家其他產品吧,至於說 flash 優化不好,我想,有能力優化 的情況下,adobe 會看著 flash 從 90% 的市場份額一路狂跌而無動於衷?假如現在的 cpu 能夠集成幾十上百倍的矢量運算單元,可能 flash 會是一種人見人愛的技術。

PPS
現在 flash 唯一的陣地就是網頁內嵌視頻領域了,而且一直有 HTML5 video 取代 flash 的呼聲。實際上二者的解碼部分是一樣的,區別在於,flash 不具有渲染到顯卡的能力,而瀏覽器也沒有辦法介入 flash 內部,基於 flash 的視頻播放必然會受圖形系統的影響,而調用硬體加速在沙盒化環境中又是處處受限,前景確實慘淡。基於原生 HTML 支持的視頻播放,更容易被瀏覽器優化,調用硬體加速也更加方便。
所以說 flash 不是死在閉門造車不思進取上,而是死在了更先進的技術面前。我絲毫不懷疑,在運算能力大幅度提升的未來,基於虛擬機的跨平台方案還會捲土重來。

-------------分割線,以下是作者回復別人提問flash為什麼不能充分利用mac os的硬體--------------

我前面那個回複本意是盡量簡潔地描述回答,也故意隱藏細節,因為這個問題實在過於複雜。另外 adobe/apple 以及 flash/osx 畢竟都是私有產品,我的理解也可能有誤,這裡我把我的理解闡述一下。

所謂的硬體加速具體指什麼,win/osx 硬體加速支持如何?

兩個方面: H.264 解碼硬體加速,屏幕渲染硬體加速。
H.264 是高清流媒體的半事實標準,高壓縮比可以大幅降低網路帶寬需求,代價是解碼運算量大。(其他編碼方式由於解碼運算量小,從硬體加速中受益不明顯,所以通常特指 H.264)
win 環境通常由顯卡廠商隨驅動提供解碼器,可供 flash 和其他播放器調用。
osx 目前 Lion 版本未提供 H.264 硬體解碼介面(QuickTime 可以調用私有 API 實現硬體解碼)。
目前網路視頻流最流行的封裝手段依舊是 flash 播放器,flash@osx 的性能問題主要就是缺乏硬體解碼支持造成的。
後者是現在主流操作系統圖形框架的基礎(compositing/hardware overlay)。這方面對於性能的影響主要是 flash 動畫,不如前者明顯和廣泛。
compositing/overlay 的優點在於,應用程序獨享自身界面部分的顯存,組合渲染由顯卡硬體實現,圖形界面渲染對於 cpu 的佔用大幅降低,同時可以利用顯卡實現大量窗口特效。
02 年 Jaguar 就實現了 compositing 硬體加速(基於 opengl),06 年 vista 也轉向了組合機制。08 年 flash v10 開始支持 win 硬體渲染,10 年 flash v10.1 支持 osx 硬體渲染。


flash@win 和 flash@osx 到底有什麼不同?

flash 本身沒有太大區別,不同在於 win/osx 的設計思想,windows 強調兼容,而 osx 硬體平台相關的,這樣的區別決定了 win/osx 對於第三方 runtime 的不同態度。
win: Hardware -&> OS -&> OS API / 3rd runtime -&> Software
osx: Hardware -&> OS -&> OS API -&> 3rd runtime / Software
flash 作為 3rd runtime 在兩個平台的地位是不同的,一般來說,越接近硬體越會有好的性能。出於兼容性考慮,win 向軟體開放大量硬體細節;而 osx 只允許第三方應用調用高級 API 同時隱藏硬體細節,保證了上層應用的統一性。flash 在兩個平台上的性能就有了先天性差距。

一句話總結:flash@osx 性能差的原因主要是缺少 H.264 硬體解碼支持,小部分原因是圖形渲染流程所致。


更新 作者已經將這個開源了 實測可以選擇高清觀看MAMA2-媽媽再也不用擔心我的macbook發熱了計劃2
-------
媽媽再也不用擔心我的macbook發燙了計劃2.0Beta 表示一直沒發熱過


你們都誤會Flash了
因為蘋果不開放底層的許可權給Flash,導致Flash只能用效率很低的方法渲染,你看在Windows上多順暢,直接用Windows的底層API,多爽。
話說我現在用的mac系統,公司用的win切來切去,都暈了
登陸知乎我用的qq,只有在win上才能在開著qq的情況下免密碼直接登錄知乎,在mac上要不輸入密碼只有用手機掃二維碼。還有酷狗音樂之類的都不能直接下載無損音樂,這些都是受限於mac系統的封閉,不能抱怨mac上的軟體做的簡單,功能少,因為軟體開發商也沒辦法,很多功能受限。
我們日常主要用的是軟體,而不是系統,系統做的再特別也沒啥大用。


如果是看視頻的話,我覺得是優化問題吧,在Youtube上面看Flash視頻體驗並不差,哪怕同時播放幾個高清Flash視頻,CPU佔用也只是15%左右,而土豆播放一個高清視頻CPU佔用就在80%左右,開兩個直接翻倍,再多我就沒試了。
————————————————————————————————————
由於之前的測試是不同的節目,結果不一定準確,所以自己錄了一小段桌面視頻分別上傳到Youtube和Youku。Youtube播放時CPU佔用在7-9%,Youku在播放時CPU佔用35-38%。


測試環境:Macbook Pro 2012 Mid(101),non-retina.
系統:Mac OS X優勝美地 DP2

三個情況(按順序排列)
1.YouTube+HTML5播放器
2.YouTube+Flash播放器
3.Youku+Flash播放器
[其中YouTube網站的兩個視頻均為720P解析度,同一個視頻文件。Youku網站視頻畫質為超清。]

我們可以考慮兩種可能,一是文件格式的不同,二有可能是Flash播放器的優化不夠,在Windows平台下Youku的Flash播放器依舊會造成比較多的CPU佔用率(時間關係沒做實際截圖測試)。
YouTube的HTML5播放器目前有一點BUG,在某些情況下會出現視頻播放無聲音的情況,刷新網頁才能解決。(到底是BUG還是我Safari的問題?更新:的確是BUG,在Google的論壇上很多人都反饋HTML5播放器的各種BUG其中有不少就是聲音或者畫面的異常問題。)
另外,如果你使用chrome,默認是HTML5播放器的,而且無法切換回flash播放器。

在Youku的實際使用過程中,和YouTube最大的區別就是長時間播放視頻(通常超過十分鐘就算長時間播放了。。。),MacBook的風扇會加速散熱,噪音會提升好多影響到播放體驗。

考慮到Flash版本是一樣的,我還是覺得應該是文件格式的軟硬解碼問題。

剛回到家,考慮重新做一個硬體解碼和軟體解碼的測試發現優勝美地上flash根本沒法開關硬體解碼設置,於是打算轉到windows下試一試。

轉到Windows下之後,因為Windows8上Safari貌似很不好用,一開Safari,task manager都無限刷新。。
所以我就改用chrome測試了一下基於flash播放器的youku視頻播放軟解和硬解兩種模式下的CPU佔用比率。(這次測試的是一個很短的新聞)

這個是開啟硬解的

這個是關閉硬解的情況。
因為這個是短視頻,所以還有待觀察長視頻的具體表現。
另外,chrome全線在YouTube上只能用HTML5播放器(通過刪除Chrome瀏覽器的一個文件可以做到屏蔽HTML5播放器的目的,但是我不打算這樣做,不值得。)另外補充一個由 @NavisLi提醒的Youtube和Youku高清視頻的差別數字:
優酷的超清解析度是1105*622 和YouTube的720p是真的1280*720。 至於碼率,YouTube反而更高,大約170;優酷是128


下載個插件即可,


Youtube的Flash播放器可能用了硬體解碼
優酷的還在測試中,沒有啟用

以超級本CPU的TDP(17瓦特)來對付高碼率的H264確實比較吃力,桌面平台動輒60W+的4C4T/4C8T的SNB/IVB/Haswell都沒問題,甚至可以用上Smooth Video Project這樣狂吃運算資源的增幀率(至60fps,藉助OpenCL)工具


印象中是軟硬解碼的問題,然而對解決這個問題並沒有卵用。
視頻站點都這樣的(以前記得b站好很多),看直播站點更嚴重!
沒找到好的解決方案,自己用的是一個比較土但很實用的方法,平時看視頻和直播的時候,手動調整smcFancontrol,把最低轉速調整到3500+


推薦閱讀:

怎樣在 Mac 上實現完全無 Flash 使用?
為什麼 iPhone、iPad 上沒有 Finder 一樣的文件管理器?
OS X 是否支持 Flash?
哪些mac os x 應用讓你用了很滿意並能提高工作質量?
Mac用AirDrop傳到Iphone的pdf文件保存在了什麼位置?

TAG:MacBook | Mac | 蘋果產品 | MacBookAir | 筆記本電腦 |