06.08 蘋果是如何讓iOS 12加速的?有四大要點

蘋果對預加載、CPU喚醒、內存分配和圖像佈局都做出了相應的調整。

iOS 12 比 iOS 11 更快、更平滑了,升級了的鋒友肯定都同意這一點。但蘋果為了讓 iOS 12 變快究竟做了哪些升級呢,只有發佈會上說的調整處理器運算資源嗎?當然不是,在昨天“Cocoa Touch 的新特性”這場演講中,蘋果為我們介紹了針對 iOS 12 做出的一系列改變。

改進預加載功能

在 iOS 12 中,蘋果工程師攻克了困擾用戶數年的卡頓問題,他們在檢查官方 App 時發現了過去丟幀的原因。在 iOS 中,用戶滑動、點擊屏幕的時候就需要即時渲染生成內容,比如說菜單列表或者是文檔中的圖形,這個生成的過程花費的時間就會導致延遲。

苹果是如何让iOS 12加速的?有四大要点

為了降低這一延遲,蘋果在 iOS 10 中引入了一個名為“Cell Pre-fetch”的功能,簡單來說就是在後臺預測用戶的動作,然後預先加載好相應的內容,當用戶確定了這個點擊或滑動馬上把預加載好的內容呈現上來,這樣一來就不會延遲了,而且不會出現處理器負載突然加大的問題。

雖然“Cell Pre-fetch”確實讓 iOS 10 變快了,但是仍然沒有完全解決丟幀問題,工程師們發現,當系統在預加載內容的時候,處理器也同時在渲染確定會在屏幕上呈現的那一組內容,二者同時進行就會導致 CPU 遇到瓶頸,然後兩個任務就都變慢了。

苹果是如何让iOS 12加速的?有四大要点

為了解決這一問題,蘋果在 Cocoa Touch (開發者創建 iOS App 時使用的接口)中重新對任務進行了排序,在屏幕渲染任務完成之後,預加載才啟動,因為前者需要馬上被用戶看到,更加重要。

CPU響應機制升級

除了這一點之外,CPU 也有一定的升級。此前的 iOS 設備中,在 CPU 負載很小的時候也會發生丟幀,因為在任務很少的時候 CPU 會降低頻率進入怠速模式。但是如果用戶突然觸發了一個比較麻煩的任務,CPU 就需要一點時間反應過來然後加快頻率,這一過程中就會發生延遲。

而在 iOS 12 中,蘋果優化了 CPU 的響應機制,能更快地從低頻提升到高頻,並且 iOS 12 還很聰明,不會把 CPU 的頻率拉得太高,只會提供完成這個任務所需要的那個頻率上,所以在完成任務之後,CPU 也能夠很快將頻率降到合適的怠速水平,減少電池的消耗。

Auto-layout (自動佈局)功能升級

緊接著還有對 Auto-layout (自動佈局)功能的升級,Auto-layout 讓開發者能對 App 內的圖標、文字等元素更方便地定位(比如據邊框多少像素),以適應不同的屏幕尺寸。但是蘋果工程師發現這個從 iOS 6 就有的功能現在看來有些過於耗費資源了,在不同的情況下, Auto-layout 使用的資源可能會呈指數級增長,比如元素在嵌套和依賴於其他元素進行放置兩種狀態下,耗費的資源大不相同。

苹果是如何让iOS 12加速的?有四大要点

在 iOS 12 中,蘋果大大減少了會導致指數縮放的元素,減輕了對 CPU 和 GPU 的負擔。總體來看,讓渲染的元素彼此獨立放置、互不干擾能夠減少資源消耗。

自動備份存儲技術

最後,蘋果還介紹了 iOS 12 的自動備份存儲技術,它可以減少應用程序運行的時候消耗的內存量。在蘋果的演示中,當舊版系統渲染相同大小的彩色照片和灰度圖像(只存在灰度信息的黑白照片)時,耗費的內存竟然是完全一樣的,但其實這兩張照片包含的信息存在顯著差異,彩色照片每個像素都有色值等信息,黑白照片只有灰度信息。

而在使用自動備份存儲技術之後,系統會對不同文件包含的數值信息進行一個初步的判斷,然後再分配合適的內存給它,不會像以前那樣一視同仁地處理所有內容,這樣做顯然可以避免浪費內存資源。

除了以上四點之外,蘋果還介紹了不少加快系統運作的方法。不過在演講的最後,工程師還是表示現在他們正在積極地對這些功能展開工作,希望在 iOS 12 正式版上線之前(今年九月)完成優化,如果無法完成,可能會推遲幾個版本。

歡迎關注威鋒網官方微信:威鋒網(weiphone_2007) 匯聚最新Apple動態,精選最熱科技資訊。


分享到:


相關文章: