iOS 性能優(yōu)化一

主要講解界面卡頓的原因

iOS 性能優(yōu)化一
iOS 性能優(yōu)化二
iOS 性能優(yōu)化三

1. 界面卡頓的原因, 界面為什么會(huì)卡頓?

界面成像原理:

不論是以前的CRT還是現(xiàn)在的液晶顯示器,成像原理是一致的;都是通過CPUGPU的協(xié)調(diào)作用來成像;

  • CPU(Central Processing Unit):中央處理器, 邏輯的計(jì)算;計(jì)算好將要顯示的內(nèi)容轉(zhuǎn)交給GPU;
  • GPU(Graphics Processing Unit ):圖像處理器, GPU開始渲染后將結(jié)果換到幀緩沖區(qū),隨后視頻控制器從幀緩沖區(qū)中讀取數(shù)據(jù),經(jīng)過一系列的轉(zhuǎn)換后交給顯示器進(jìn)行顯示;
    顯示的過程大致如下

2. 界面卡頓原因:

滑動(dòng)時(shí)穩(wěn)定在60fps左右(玩游戲的同學(xué)應(yīng)該都能理解fps的概念)就感覺不到卡頓;
網(wǎng)上查了下現(xiàn)在的屏幕一般的刷新率為60HZ

每秒展示出60幀畫面就不會(huì)掉幀(卡頓現(xiàn)象);



也就是每幀畫面的處理時(shí)間大概在16.7ms(1s/60 ≈16.7ms), 就不會(huì)出現(xiàn)卡頓現(xiàn)象;

知識(shí)點(diǎn):每幀畫面CPU+GPU的時(shí)間不能超過16.7ms, 如果超過16.7ms就會(huì)出現(xiàn)掉幀現(xiàn)象;


補(bǔ)充部分

1. 畫面撕裂

畫面撕裂出現(xiàn)原因: iOS采用雙重緩存+垂直同步的方案;
GPU會(huì)先渲染一幀界面放到緩沖區(qū)中供視頻控制器去顯示, 當(dāng)下一幀緩存好后視頻控制器指向另一個(gè)緩存區(qū); 這種機(jī)制可以提升效率,但是問題也隨之而來, 假如視頻控制器讀取第一個(gè)緩存區(qū)內(nèi)容尚未完成(即界面尚未完全顯示), 這時(shí)GPU已經(jīng)將下一幀界面渲染好放入緩存區(qū)內(nèi), 然后去展示另一個(gè)緩存區(qū)內(nèi)的數(shù)據(jù),
這樣就會(huì)出現(xiàn)畫面撕裂的現(xiàn)象;如圖


垂直同步(簡(jiǎn)寫也是 V-Sync)可以有效的解決這個(gè)問題;開啟垂直同步后,GPU會(huì)等待顯示器的VSync信號(hào)發(fā)出后才會(huì)進(jìn)行新的一幀界面的渲染和緩存區(qū)更新, 這樣可以提高畫面的流暢度, 但是會(huì)消耗更多的資源;



2. 成像原理

YYKit作者描述:首先從過去的 CRT顯示器原理說起因块。CRT 的電子槍按照上面方式熊痴,從上到下一行行掃描材彪,掃描完成后顯示器就呈現(xiàn)一幀畫面,隨后電子槍回到初始位置繼續(xù)下一次掃描耙替。為了把顯示器的顯示過程和系統(tǒng)的視頻控制器進(jìn)行同步斑胜,顯示器(或者其他硬件)會(huì)用硬件時(shí)鐘產(chǎn)生一系列的定時(shí)信號(hào)会前。當(dāng)電子槍換到新的一行姥闪,準(zhǔn)備進(jìn)行掃描時(shí),顯示器會(huì)發(fā)出一個(gè)水平同步信號(hào)horizonal synchronization肌毅,簡(jiǎn)稱HSync筷转;而當(dāng)一幀畫面繪制完成后,電子槍回復(fù)到原位悬而,準(zhǔn)備畫下一幀前呜舒,顯示器會(huì)發(fā)出一個(gè)垂直同步信號(hào)vertical synchronization,簡(jiǎn)稱 VSync摊滔。顯示器通常以固定頻率進(jìn)行刷新阴绢,這個(gè)刷新率就是VSync 信號(hào)產(chǎn)生的頻率。盡管現(xiàn)在的設(shè)備大都是液晶顯示屏了艰躺,但原理仍然沒有變呻袭。


資料參考連接
iOS 保持界面流暢的技巧
iOS 視圖渲染以及性能優(yōu)化總結(jié)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市腺兴,隨后出現(xiàn)的幾起案子左电,更是在濱河造成了極大的恐慌,老刑警劉巖页响,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件篓足,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡闰蚕,警方通過查閱死者的電腦和手機(jī)栈拖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來没陡,“玉大人涩哟,你說我怎么就攤上這事∨涡” “怎么了贴彼?”我有些...
    開封第一講書人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)埃儿。 經(jīng)常有香客問我器仗,道長(zhǎng),這世上最難降的妖魔是什么童番? 我笑而不...
    開封第一講書人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任精钮,我火速辦了婚禮,結(jié)果婚禮上剃斧,老公的妹妹穿的比我還像新娘杂拨。我一直安慰自己,他們只是感情好悯衬,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開白布弹沽。 她就那樣靜靜地躺著,像睡著了一般筋粗。 火紅的嫁衣襯著肌膚如雪策橘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評(píng)論 1 290
  • 那天娜亿,我揣著相機(jī)與錄音丽已,去河邊找鬼。 笑死买决,一個(gè)胖子當(dāng)著我的面吹牛沛婴,可吹牛的內(nèi)容都是我干的吼畏。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼嘁灯,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼泻蚊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起丑婿,我...
    開封第一講書人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤性雄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后羹奉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秒旋,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年诀拭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了迁筛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡耕挨,死狀恐怖瑰煎,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情俗孝,我是刑警寧澤酒甸,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站赋铝,受9級(jí)特大地震影響插勤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜革骨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一农尖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧良哲,春花似錦盛卡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至巍实,卻和暖如春滓技,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背棚潦。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工令漂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓叠必,卻偏偏與公主長(zhǎng)得像荚孵,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子纬朝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容