iOS 性能優(yōu)化 (二) 如何優(yōu)化(圓角優(yōu)化另開一章)

一:針對CPU

1.文本的計算放到分線程敏释,Coretext或Textkit進行相關(guān)繪制
2.圖片解碼放到子線程
3.圓角重新子線程繪制一張圖片
4..避免 對象創(chuàng)建囱修,對象銷毀卦方,對象調(diào)整纪吮,盡量少用addView給Cell動態(tài)添加View,可以初始化時就添加,然后通過hide來控制是否顯示
5.減少subviews的數(shù)量
6.避免重復(fù)計算要糊,比如 緩存高度纲熏,只計算一次,根據(jù)數(shù)據(jù)源計算出對應(yīng)的布局锄俄,并緩存到數(shù)據(jù)源中(ps:如果現(xiàn)在要顯示100個Cell局劲,當(dāng)前屏幕顯示5個。那么刷新(reload)UITableView時奶赠,UITableView會先調(diào)用100次

tableView:heightForRowAtIndexPath:

方法鱼填,然后調(diào)用5次

tableView:cellForRowAtIndexPath:

方法;滾動屏幕時毅戈,每當(dāng)Cell滾入屏幕苹丸,都會調(diào)用一次

tableView:heightForRowAtIndexPath:
tableView:cellForRowAtIndexPath:

二:針對GPU

  1. 多視圖混合情況
    (1)背景不透明塑猖,盡量少用或不用透明圖層:確保控件的opaque屬性設(shè)置為true谈跛,確保backgroundColor和父視圖顏色一致且不透明如無特殊需要,不要設(shè)置低于1的alpha值
    (2)確保UIImage沒有alpha通道
    2.圖片相關(guān)
    (1)確保圖片大小和frame一致塑陵,保證字節(jié)對齊感憾,不要在滑動時縮放圖片,縮放消耗時間
    (2)圖片格式png:確保圖片顏色格式被GPU支持令花,避免勞煩CPU轉(zhuǎn)換
    3.字節(jié)對齊
    Core Animation在圖像數(shù)據(jù)非字節(jié)對齊的情況下渲染前會先拷貝一份圖像數(shù)據(jù)阻桅,
    32位對應(yīng)rgb和alpha,字節(jié)對齊不進行額外計算 像素不對齊:會繼續(xù)合成紋理兼都,消耗資源
    4.慎用離屏渲染
    絕大多數(shù)時候離屏渲染會影響性能 ,盡量其它方法實現(xiàn)
    設(shè)置圓角嫂沉、陰影、模糊效果扮碧,光柵化都會導(dǎo)致離屏渲染
    設(shè)置陰影效果是加上陰影路徑
    滑動時若需要圓角效果趟章,開啟光柵化

三:解碼圖像

一般我們使用的圖像是JPG/PNG,這些圖像數(shù)據(jù)不是位圖慎王,而是是經(jīng)過編碼壓縮后的數(shù)據(jù)蚓土,使用它渲染到屏幕之前需要進行解碼轉(zhuǎn)成位圖數(shù)據(jù),這個解碼操作是比較耗時的赖淤,并且沒有GPU硬解碼蜀漆,只能通過CPU,iOS默認(rèn)會在主線程對圖像進行解碼咱旱。很多庫都解決了圖像解碼的問題确丢,不過由于解碼后的圖像太大,一般不會緩存到磁盤吐限,SDWebImage的做法是把解碼操作從主線程移到子線程鲜侥,讓耗時的解碼操作不占用主線程的時間。

四:內(nèi)存映射

平常我們讀取磁盤上的一個文件毯盈,上層API調(diào)用到最后會使用系統(tǒng)方法read()讀取數(shù)據(jù)剃毒,內(nèi)核把磁盤數(shù)據(jù)讀入內(nèi)核緩沖區(qū),用戶再從內(nèi)核緩沖區(qū)讀取數(shù)據(jù)復(fù)制到用戶內(nèi)存空間搂赋,這里有一次內(nèi)存拷貝的時間消耗赘阀,并且讀取后整個文件數(shù)據(jù)就已經(jīng)存在于用戶內(nèi)存中,占用了進程的內(nèi)存空間脑奠。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末基公,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子宋欺,更是在濱河造成了極大的恐慌轰豆,老刑警劉巖胰伍,帶你破解...
    沈念sama閱讀 211,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異酸休,居然都是意外死亡骂租,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評論 3 385
  • 文/潘曉璐 我一進店門斑司,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渗饮,“玉大人,你說我怎么就攤上這事宿刮』フ荆” “怎么了?”我有些...
    開封第一講書人閱讀 157,435評論 0 348
  • 文/不壞的土叔 我叫張陵僵缺,是天一觀的道長胡桃。 經(jīng)常有香客問我,道長磕潮,這世上最難降的妖魔是什么翠胰? 我笑而不...
    開封第一講書人閱讀 56,509評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮揉抵,結(jié)果婚禮上亡容,老公的妹妹穿的比我還像新娘。我一直安慰自己冤今,他們只是感情好闺兢,可當(dāng)我...
    茶點故事閱讀 65,611評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著戏罢,像睡著了一般屋谭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上龟糕,一...
    開封第一講書人閱讀 49,837評論 1 290
  • 那天桐磁,我揣著相機與錄音,去河邊找鬼讲岁。 笑死我擂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缓艳。 我是一名探鬼主播校摩,決...
    沈念sama閱讀 38,987評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼阶淘!你這毒婦竟也來了衙吩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評論 0 267
  • 序言:老撾萬榮一對情侶失蹤溪窒,失蹤者是張志新(化名)和其女友劉穎坤塞,沒想到半個月后冯勉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡摹芙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,525評論 2 327
  • 正文 我和宋清朗相戀三年灼狰,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浮禾。...
    茶點故事閱讀 38,664評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡伏嗜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出伐厌,到底是詐尸還是另有隱情,我是刑警寧澤裸影,帶...
    沈念sama閱讀 34,334評論 4 330
  • 正文 年R本政府宣布挣轨,位于F島的核電站,受9級特大地震影響轩猩,放射性物質(zhì)發(fā)生泄漏卷扮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,944評論 3 313
  • 文/蒙蒙 一均践、第九天 我趴在偏房一處隱蔽的房頂上張望晤锹。 院中可真熱鬧,春花似錦彤委、人聲如沸鞭铆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽车遂。三九已至,卻和暖如春斯辰,著一層夾襖步出監(jiān)牢的瞬間舶担,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評論 1 266
  • 我被黑心中介騙來泰國打工彬呻, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留衣陶,地道東北人。 一個月前我還...
    沈念sama閱讀 46,389評論 2 360
  • 正文 我出身青樓闸氮,卻偏偏與公主長得像剪况,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子湖苞,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,554評論 2 349

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