say your Highlights

此時(shí)此刻玻璃杯 碎了 歲歲平安务豺。。。。開啟自我之旅

對(duì)于uitableview 優(yōu)化 有研究
第一點(diǎn)是cell identifier 復(fù)用
第二點(diǎn) 對(duì)于各cell不同 高度的計(jì)算 rowHeight 的設(shè)置 以及 estimatedRowHeight (估算高度的開啟)
第三點(diǎn) ios8以后 self-sizing cell ((( 旨在讓 cell 自己負(fù)責(zé)自己的高度計(jì)算切省,使用 frame layout 和 auto layout 都可以享受到)))

具有動(dòng)態(tài)內(nèi)容的cell

frame時(shí)代通過數(shù)據(jù) 反算高度(吐槽 各種margin 并且耦合了屏幕的寬度等)

AutoLayout 提供systemLayoutSizeFittingSizeAPI  在 contentView 中設(shè)置約束后,就能計(jì)算出準(zhǔn)確的值杈抢。
 
第四點(diǎn) rowHeight  的與緩存機(jī)制
    采用的Runloop 利用runloop 空閑時(shí) 執(zhí)行緩存任務(wù)(當(dāng)用戶正在滑動(dòng)列表時(shí)顯然不應(yīng)該執(zhí)行計(jì)算任務(wù)影響滑動(dòng)體驗(yàn))

RunLoopMode 的概念
UITrackingRunLoopMode 接受滑動(dòng)手勢和處理滑動(dòng)事件(包括減速和彈簧效果)
NSDefaultRunLoopModel (一進(jìn)入程序就進(jìn)入這個(gè) 狀態(tài)) 默認(rèn)狀態(tài) 空閑狀態(tài)
NSRunLoopCommonModes (以上兩種結(jié)合)

NSTimer 完全依賴RunLoop工作

tableview 延遲加載圖片思路 在NSDefaultRunLoopModel 時(shí)設(shè)置圖片 防止卡頓。delegate 監(jiān)聽滑動(dòng)的時(shí)候不去設(shè)置仑性。

對(duì)于UIKite性能調(diào)優(yōu)
common + I 打開 Instrument 選擇
core animation

==圖層混合 調(diào)試項(xiàng)Color Blended Layers 很多控件opaque設(shè)置為yes(默認(rèn)為yes) 目的就是避免圖層混合惶楼。 關(guān)注圖像本身的性質(zhì).
透明會(huì)出現(xiàn) 圖層混合 如果不設(shè)置backgroundColor 控件依然被認(rèn)為透明。

===光柵化 調(diào)試選項(xiàng) Color Hits Green and Misses Red(光柵化是將一個(gè)layer預(yù)先渲染成位圖(bitmap)诊杆,然后加入緩存中)在緩存中是綠色歼捐。提高性能。 緩存有效期問題(100ms)

用不用晨汹?
光柵化的緩存機(jī)制是一把雙刃劍豹储,先寫入緩存再讀取有可能消耗較多的時(shí)間。因此光柵化僅適用于較復(fù)雜的淘这、靜態(tài)的效果剥扣。通過Instrument的調(diào)試發(fā)現(xiàn)巩剖,這里使用光柵化經(jīng)常出現(xiàn)未命中緩存的情況,如果沒有特殊需要?jiǎng)t可以關(guān)閉光柵化钠怯,所以我們做的第二個(gè)優(yōu)化是注釋掉下面這行代碼:

光柵化會(huì)導(dǎo)致離屏渲染

===顏色格式 調(diào)試選項(xiàng) Color Copied Images

  • 把圖片從PNG或JPEG等格式中解壓出來佳魔,得到像素?cái)?shù)據(jù)
  • 如果GPU不支持這種顏色各式,CPU需要進(jìn)行格式轉(zhuǎn)換

比如應(yīng)用中有一些從網(wǎng)絡(luò)下載的圖片晦炊,而GPU恰好不支持這個(gè)格式鞠鲜,這就需要CPU預(yù)先進(jìn)行格式轉(zhuǎn)化。第三個(gè)選項(xiàng)“Color Copied Images”就用來檢測這種實(shí)時(shí)的格式轉(zhuǎn)化断国,如果有則會(huì)將圖片標(biāo)記為藍(lán)色贤姆。

===圖片的大小 調(diào)試選項(xiàng) Color Misaligned Images
在demo中,每個(gè)UIImageView
的大小都是180x180稳衬,而只有第二張圖片的像素大小是360x360霞捡。因此除了第二張圖片,其他的圖片都需要被縮放宋彼。圖片的縮放需要占用時(shí)間弄砍,因此我們要盡可能保證無論是本地圖片還是從網(wǎng)絡(luò)或取得圖片的大小,都與其frame保持一致

第三個(gè)優(yōu)化是調(diào)整所有圖片的像素大小以避免不必要的縮放输涕。

====離屏渲染 調(diào)試選項(xiàng) Color Offscreen-Rendered Yellow
首先音婶,OpenGL提交一個(gè)命令到Command Buffer,隨后GPU開始渲染莱坎,渲染結(jié)果放到Render Buffer中衣式,這是正常的渲染流程。但是有一些復(fù)雜的效果無法直接渲染出結(jié)果檐什,它需要分步渲染最后再組合起來碴卧,比如添加一個(gè)蒙版(mask):

在前兩個(gè)渲染通道中,GPU分別得到了紋理(texture乃正,也就是那個(gè)相機(jī)圖標(biāo))和layer(藍(lán)色的蒙版)的渲染結(jié)果住册。但這兩個(gè)渲染結(jié)果沒有直接放入Render Buffer中,也就表示這是離屏渲染瓮具。直到第三個(gè)渲染通道荧飞,才把兩者組合起來放入Render Buffer中。離屏渲染意味著把渲染結(jié)果臨時(shí)保存名党,等用到時(shí)再取出叹阔,因此相對(duì)于普通渲染更占用資源。

引起離屏渲染===

  • 重寫drawRect方法
  • 有mask或者是陰影(layer.masksToBounds, layer.shadow*)传睹,模糊效果也是一種mask
  • layer.shouldRasterize = true

常見問題設(shè)置圓角 cornerRadius 其中 layer.masksToBounds = true 會(huì)引起光柵化耳幢。。避免滑動(dòng)時(shí)必須設(shè)置圓角的化 采用光柵化 緩存圓角欧啤。
同時(shí)對(duì)于圓角圖片的裁剪 貝塞爾曲線 畫出來睛藻。启上。UIBezierPath 設(shè)置裁剪路徑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末修档,一起剝皮案震驚了整個(gè)濱河市碧绞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吱窝,老刑警劉巖讥邻,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異院峡,居然都是意外死亡兴使,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門照激,熙熙樓的掌柜王于貴愁眉苦臉地迎上來发魄,“玉大人,你說我怎么就攤上這事俩垃±祝” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵口柳,是天一觀的道長苹粟。 經(jīng)常有香客問我,道長跃闹,這世上最難降的妖魔是什么嵌削? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮望艺,結(jié)果婚禮上苛秕,老公的妹妹穿的比我還像新娘。我一直安慰自己找默,他們只是感情好艇劫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惩激,像睡著了一般店煞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上咧欣,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天浅缸,我揣著相機(jī)與錄音轨帜,去河邊找鬼魄咕。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蚌父,可吹牛的內(nèi)容都是我干的哮兰。 我是一名探鬼主播毛萌,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼喝滞!你這毒婦竟也來了阁将?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤右遭,失蹤者是張志新(化名)和其女友劉穎做盅,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體窘哈,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡吹榴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滚婉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片图筹。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖让腹,靈堂內(nèi)的尸體忽然破棺而出远剩,到底是詐尸還是另有隱情,我是刑警寧澤骇窍,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布瓜晤,位于F島的核電站,受9級(jí)特大地震影響像鸡,放射性物質(zhì)發(fā)生泄漏活鹰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一只估、第九天 我趴在偏房一處隱蔽的房頂上張望志群。 院中可真熱鬧,春花似錦蛔钙、人聲如沸锌云。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽桑涎。三九已至,卻和暖如春兼贡,著一層夾襖步出監(jiān)牢的瞬間攻冷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國打工遍希, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留等曼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像禁谦,于是被迫代替她去往敵國和親胁黑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫州泊、插件丧蘸、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,103評(píng)論 4 62
  • UIKit性能調(diào)優(yōu)實(shí)戰(zhàn)講解 在使用UIKit的過程中,性能優(yōu)化是永恒的話題遥皂。很多人都看過分析優(yōu)化滑動(dòng)性能的文章力喷,但...
    說一句話介紹自己閱讀 289評(píng)論 0 4
  • 轉(zhuǎn)自bestswifter 在使用UIKit的過程中,性能優(yōu)化是永恒的話題演训。很多人都看過分析優(yōu)化滑動(dòng)性能的文章冗懦,但...
    iYeso閱讀 831評(píng)論 0 1
  • 念一個(gè)人便是低到了塵埃里,世上百媚千種仇祭,卻也不敵她的萬分之一披蕉。這是張愛玲的寫法。 誰都渴望不卑不亢的感情乌奇,聽上去似...
    f03b0738061b閱讀 323評(píng)論 2 1
  • 今天和兒子去散步了一小時(shí)没讲,明天繼續(xù),堅(jiān)持打卡
    西門千雪閱讀 231評(píng)論 0 0