首頁>科技>

2019年9月26日,華為Mate30系列在上海釋出,除了一如既往的頂級硬體配置外,在EMUI系統層面華為也拿出了十足誠意,大幅提高了系統流暢性和增強了穩定性。

在講到軟體效能優化時,餘承東提到EMUI10搭載了新一代GPU Turbo,以及另一個大家相對陌生的技術——“確定時延引擎”。

有報道稱,“擁有確定時延引擎的EMUI10,在平均響應時延和效能波動方面均有所改善,完成時延降低30%,時延波動率降低27%。無論在哪種場景下,使用者體驗流暢性始終如一。 ”

然而,很多人或許還是似懂非懂,究竟什麼是“確定時延引擎”?為何它能給手機帶來穩定流暢的體驗?這還要從安卓資源排程策略說起。

力不從心的Linux資源排程

眾所周知,安卓系統源於Linux,安卓資源排程也根植於Linux核心。手機相對於PC,並不充裕的資源以及更加複雜多變的使用場景,使得源於Linux的資源排程策略越來越力不從心,安卓手機遭遇莫名卡頓也是常有的事。

要想改變這一現狀,勢必要從CPU排程、記憶體排程、IO這三個方面下手,撬動Linux核心。

首先, Linux中CPU排程策略傾向於公平排程,而安卓更像是當前“僧多粥少”的社會競爭狀態,不合時宜的排程,導致了手機上CPU呼叫準確度和效率都打了折扣。

其次,由於記憶體分配和回收不具備前後臺程序區分的能力,不管前臺還是後臺發起的記憶體請求,系統都公平對待。這樣就會導致在系統多工併發的情況下,導致記憶體無序競爭資源而陷入卡頓。

第三,手機的幾乎每一個操作都涉及到讀取和寫入(IO),當系統中出現大量IO請求,大大超出手機儲存裝置的併發處理能力時,不能及時處理的IO請求就快取在系統的軟體佇列和儲存裝置的硬體佇列中,如此再大的記憶體也要堵車了。

確定時延引擎 讓後臺不再無序

應運而生的確定時延引擎,不僅讓EMUI更快更流暢,而且更穩定。

為了這項黑科技,華為投入數百位技術專家,耗時近2年,再次對整個安卓系統從框架到核心進行了一次大手術。

如前所述,當Linux核心資源排程策略失當,後臺應用佔用過多CPU、記憶體或者IO時,確定時延引擎的三大變革——“VIP優先排程”、“優先順序矯正”、“預留服務”便有了用武之地,讓資源真正用在刀刃上,保障使用者體驗的流暢穩定。

提供VIP優先排程服務

類似銀行的VIP通道,讓本應該優先的程序可以繞過佇列,保障執行效率。不僅如此,華為還對網路協議棧進行了改造,針對低優先順序的部分網路業務進行協議上的限流。在網路頻寬一定的情況下,儘可能保障“前臺”業務的IO請求。

優先順序矯正,破除任務依賴

由於Linux核心無法感知執行緒間的依賴關係,那麼如果一個高優先順序的任務依賴於低優先順序的任務,就需要將低優先順序任務提前。

在這方面,確定時延引擎首先是對相關資料結構重新設計,賦予了CPU和IO排程器業務感知能力,能夠精確知道哪些執行緒在哪些時間段是跟使用者操作真正相關的。

比如A去自動取款機取錢,B排在A後面存錢。此時取款機恰好沒錢了,那麼要麼等待銀行來給自動取款機補充資金,要麼提高B優先順序,使其先存錢。兩者優劣,高下立現。

正是這種對“前臺”的私有化CPU和IO的定製,保障了使用者的最佳體驗。

讓系統做到“預留服務先知先覺”

以公交專用道為例,公交專用車道,是專門為公車在特定時間通行的車道,主要功能是方便公交網路應對各種高峰時段和突發狀況帶來的道路擁堵問題。在高峰期時段中,起到保障城市內部道路通暢的作用。

確定時延引擎在Linux原有排程策略上進行了增強,能夠精確識別哪些任務是“公車”, 這些任務是否可以走“公交專用車道”,若是,則提前為其預留相關資源,從而提高其任務處理效率,保障使用者操作路徑上的關鍵資源供給。

如果把上面的例子套用在記憶體排程上,則表示智慧前臺排程既可以保證“前臺”任務請求記憶體優先分配,減少進入慢速路徑的次數,又可以在高負載情況下緩解記憶體抖動現象。

對 “無人區”的不斷探索

從EMUI5.0開始,華為陸續推出了 “18個月持續流暢”的革命性體驗、GPU Turbo、EROFS超級檔案系統、方舟編譯器以及確定時延引擎等針對系統核心進行的改動。從根本上突破了安卓智慧手機越用越卡頓的弊端,並深刻改變了此後安卓的使用者體驗。

EMUI在不斷“進化”,而這需要投入大量的時間和精力進行研發,每一次嘗試都是華為對“無人區”發起的探索。憑藉深厚的技術和人才積累,華為對系統極限體驗的探索還在繼續,究竟華為還藏著多少“黑科技”,就讓我們一起拭目以待吧。

  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 中國通訊學會:洞察通訊難題 驅動科學創新