為什麼iOS9採用Metal渲染界面卻變卡?

包括動畫掉幀等等,蘋果官方卻說ios9採用了metal技術來渲染系統界面,會更加流暢。有沒有能從技術層面解釋一下這個問題,是metal天生殘疾還是優化需要時間?


轉載自威鋒大神@dphriefst99 侵權即刪

首先,ios9為什麼這麼卡?

1.ios9是一款新系統,什麼意思,他使用了新的編程語言swift,蘋果稱這可以提升代碼執行效率,但是,畢竟需要移植代碼,一個operating system的代碼量是很客觀的,即使這是一個手機的操作系統,那麼很多演算法的移植就是一件比較痛苦的事情,效率短時間不會有很好的改善.....畢竟object c的代碼還是和新語言很不一樣的,移植過不同平台代碼的人應該會有體會。另外,編譯過程中,對於代碼的中間代碼優化截然不同,這些都是ios9系統不如8的一些可能因素。

2.系統動畫為什麼卡的這麼明顯!這個我也超級煩,在國外論壇macRumors中證實,ios9使用新的metal api替代openGL,而metal並沒有達到理想的渲染能力,導致性能不佳,6,5s機型使用metal渲染卡頓超越ip5,後者因為不支持metal api,所以依然是沿用以前的方法。

3.對於內存陰謀輪,什麼ios9故意卡,6s不卡因為2g內存之類的,什麼緩存不啟用導致微信等圖片卡頓,看到就想笑,稍微說一下一些概念:首先cache,也就是緩存,它很小,小到電腦的cpu,一級最大也就1m,二級三級cache也就不倒16m,你們指望著這個空間給你緩存圖片?a7cpu一級cache我沒記錯128k.....他是幹什麼用的,現代計算機技術使用指令集,使用cache主要適應內存低速與cpu高速不匹配,並且程序執行局部性特點,使用cache,讀入一塊代碼,實現指令流水,提升性能。圖片放緩存純屬扯淡。並且,所謂緩存實際上就是主存,ram中,程序執行只可能使用ram,那麼就不存在先緩存圖片,就不卡的邏輯了。

還有一點就是 不僅僅是metal, iphone 6 6p的a8處理器的gpu是gx6450,也就是6430加強了紋理單元,喂不飽解析度的提升。onscreen測試fps,6的幀率比5s還要低,6p更是只有5s的五分之三,6p在iOS8下的性能 說的不好聽點就是「勉強帶起來了」,iOS9這次還動用了不成熟的metal,我用xcode分析了gpu佔用,幾乎是全紅,也就是說,metal相比軟渲染底層動畫更吃gpu資源,這也不難解釋為啥9的動畫這麼生硬,6s和6sp不這麼糟糕的原因,全靠a9三倍的metal性能硬生生撐著的,如果以後蘋果換回以前的軟渲染,毫無疑問,iOS9絕對比8流暢。


人家說的是在6S上跑的時候啦~~


是告訴你該割另一個腎了。


推薦閱讀:

有什麼理由可以棄 iPhone(iOS) 投 Lumia(Windows Phone)?
中國出現喬布斯那樣改變世界的人幾率有多大?
如何評價李楠發表的《一張圖秒懂S8,iPhone8的全面屏技術領先在哪裡》裡面的觀點?
ozmosis引導和白蘋果引導有什麼區別,求兩種引導的具體區別?
為什麼 iPod touch 要隱藏電量百分比?

TAG:蘋果公司AppleInc | iOS9 |