iOS 渲染流程和屏幕卡頓原因

屏幕卡頓

屏幕卡頓是指圖形顯示到屏幕上時倡缠,出現(xiàn)了圖像撕裂伊群、掉幀等問題

卡頓原因

  • 圖形、圖像顯示到屏幕上,需要經(jīng)過CPU計算和GPU渲染氨距,但是在這過程中是需要一定的耗時,如果耗時過長赚导,就會導致幀緩沖區(qū)的數(shù)據(jù)沒有更新尚粘,顯示的還是上一幀的數(shù)據(jù)
  • 垂直同步+雙緩沖區(qū):通過Vsync強制同步,雖然可以解決屏幕撕裂蝇庭,但同時也會導致掉幀醉鳖,雖然采用了雙緩沖區(qū),但是并不能從根本上解決CPU哮内、GPU處理圖形盗棵、圖像的速度,從而導致掉幀

屏幕顯示的過程

  • CPU計算需要顯示的圖像北发,提交給GPU
  • GPU進行渲染后將結(jié)果存放到幀緩沖區(qū)
  • 視頻控制器再去讀取幀緩沖區(qū)里的內(nèi)容
    image.png

垂直同步和雙緩沖區(qū)

  • 垂直同步:是指給幀緩沖加鎖纹因,當電子光束掃描的過程中,只有掃描完成了才會讀取下一幀的數(shù)據(jù)琳拨,而不是只讀取一部分
  • 雙緩沖區(qū):采用兩個幀緩沖區(qū)用于GPU處理結(jié)果的存儲瞭恰,當屏幕顯示其中一個緩存區(qū)內(nèi)容時,另一個緩沖區(qū)繼續(xù)等待下一個緩沖結(jié)果狱庇,兩個緩沖區(qū)依次進行交替
image.png

掉幀

當前屏幕顯示的是A寄疏,在收到垂直信號后,CPU和GPU處理的B還沒有準備好僵井,此時陕截,屏幕顯示的仍然是A


image.png

iOS渲染流程

  • App通過調(diào)用CoreGraphicsCoreAnimation批什、CoreImage等框架接口觸發(fā)圖像渲染操作
  • 框架將渲染交由OpenGL ES來驅(qū)動GPU做渲染农曲,最后顯示到屏幕上
image.png

iOS中的渲染框架

未命名文件.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子乳规,更是在濱河造成了極大的恐慌形葬,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件暮的,死亡現(xiàn)場離奇詭異笙以,居然都是意外死亡,警方通過查閱死者的電腦和手機冻辩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門猖腕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人恨闪,你說我怎么就攤上這事倘感。” “怎么了咙咽?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵老玛,是天一觀的道長。 經(jīng)常有香客問我钧敞,道長蜡豹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任溉苛,我火速辦了婚禮镜廉,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘炊昆。我一直安慰自己桨吊,他們只是感情好,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布凤巨。 她就那樣靜靜地躺著视乐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪敢茁。 梳的紋絲不亂的頭發(fā)上佑淀,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天,我揣著相機與錄音彰檬,去河邊找鬼伸刃。 笑死,一個胖子當著我的面吹牛逢倍,可吹牛的內(nèi)容都是我干的捧颅。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼较雕,長吁一口氣:“原來是場噩夢啊……” “哼碉哑!你這毒婦竟也來了挚币?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤扣典,失蹤者是張志新(化名)和其女友劉穎妆毕,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贮尖,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡笛粘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了湿硝。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薪前。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖图柏,靈堂內(nèi)的尸體忽然破棺而出序六,到底是詐尸還是另有隱情任连,我是刑警寧澤蚤吹,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站随抠,受9級特大地震影響裁着,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拱她,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一二驰、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧秉沼,春花似錦桶雀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至敞咧,卻和暖如春棘捣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背休建。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工乍恐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人测砂。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓茵烈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親砌些。 傳聞我的和親對象是個殘疾皇子呜投,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359

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