CPU|這代安卓機特別耗電?聊聊安卓應用64位的問題

CPU|這代安卓機特別耗電?聊聊安卓應用64位的問題

文章圖片

CPU|這代安卓機特別耗電?聊聊安卓應用64位的問題

文章圖片

CPU|這代安卓機特別耗電?聊聊安卓應用64位的問題

文章圖片

【CPU|這代安卓機特別耗電?聊聊安卓應用64位的問題】CPU|這代安卓機特別耗電?聊聊安卓應用64位的問題

文章圖片




相信很多朋友已經購買到了最新一代CPU平臺的安卓機了 。 這代安卓機的CPU發生了劇變 , 在保持了大中小核架構的同時 , 對大核和小核的微架構都進行了大改 。 小核心的微架構進化 , 應該是大家期盼已久的了 , 祖傳的Cortex-A55終于退休 , 按理來說全新的Cortex-A510應該會帶來更好的能效 。 但是有人發現 , 這代安卓機似乎更加耗電了 , 這是為何?今天就從新一代ARM處理器的架構聊起 , 簡單談談安卓應用64位普及遲滯導致的耗電問題吧 。

新一代ARMv9處理器 , 為何反而更耗電?
新ARM處理器甚至更耗電?
當前上市的最新一代安卓機所使用的高通驍龍8gen1處理器 , 以及即將上市的聯發科天璣9000處理器 , 都屬于最新設計的基于ARMv9架構的產品 。 它們都有一個共同的特點 , 就是文章開頭所說的大核和小核微架構進行了大改 , 大核心使用了Cortex-X2微架構 , 而小核心則使用了Cortex-A510微架構 。

新處理器的小核是經過重新設計的Cortex-A510 , 理論上可以帶來更高的能效

無論是Cortex-X2還是Cortex-A510 , 它們都有一個共同的特點 , 那就是不再支持32位 , 如果安卓機要運行32位的應用 , 那就必須在微架構只作了小幅調整的Cortex-A710中運行 。 如此一來 , 在某些場景中 , 就有可能導致額外的能耗 。

在理想的情況下 , 安卓機在待機或者低負載時 , 應用程序主要運行在小核心上 , 小核心的能效比最出色 , 如此一來就能達到節電的效果;但如今 , 如果App是32位的 , 在新的ARM處理器中 , 就只能由中核運行 , 小核的能效優勢只能干瞪眼 , 額外耗電的情況就出現了 。

在運行32位安卓App時 , 處理器實際上只能工作在Performance工況下 , 無法進入節電的Efficiency工況

換言之 , 在使用了新一代CPU的安卓機中 , 如果運行32位的App , 是無法達到理想的能效比的 。 這個問題 , 和芯片工藝無關 , 和系統無關 , 的的確確就是安卓生態和新處理器架構不匹配所導致的 。

只有64位的安卓App , 才能運行在新ARM處理器的小核心上 , 才能讓新ARM處理器發揮出應有的能效 。 因此 , 何時普及64位的安卓App , 就成為了新一代ARM處理器何時能更節電問題的答案 。

安卓App仍未普及64位?
當前的安卓生態中 , 32位的應用仍大量存在 , 這些應用不乏大家常見的裝機必備 , 例如嗶哩嗶哩、百度網盤、愛奇藝等等 。 這種情況是否正常?從技術的角度來看 , 似乎很不應該 。

像嗶哩嗶哩這樣Target API已經更新到Android 11的應用 , 也依然只是32位的

從ARMv8開始 , 安卓陣營的CPU就已經普遍支持64位 , 安卓系統也在Android 5.0后 , 從系統層面支持64位應用 。 這兩件事 , 其實都屬于比較遠古的了——基于ARMv8的驍龍810以及Android 5.0都出現于2014年 , 轉眼都快十年過去了 , 為何安卓App仍大量停留在32位?

相關經驗推薦