- Time Profiler:分析代碼的執(zhí)行時(shí)間肪虎,找出導(dǎo)致程序變慢的原因饲做。
要從xcode的product>profile中打開Instruments才能看到自己代碼的運(yùn)行時(shí)間分析 - Allocations:監(jiān)測(cè)內(nèi)存使用 / 分配情況 迅速膨脹的內(nèi)存可以很快讓程序斃命丧失,所以要多加防范函似。
- Leaks:找到引發(fā)內(nèi)存泄漏的起點(diǎn)
當(dāng)你進(jìn)入一個(gè)UIViewController頁面并返回的時(shí)候發(fā)現(xiàn)內(nèi)存一直在增加俊庇,那可能會(huì)發(fā)生了內(nèi)存泄
露此熬,可以試試看UIViewController的dealloc有沒有運(yùn)行,如果沒運(yùn)行可能就是發(fā)生了內(nèi)存泄露譬嚣。
以上三點(diǎn)iOS 性能優(yōu)化:Instruments 工具的救命三招有不錯(cuò)的介紹钢颂,還有例子比較容易懂。
- Core Animation: 通過聯(lián)調(diào)真機(jī)拜银,可以觀察到運(yùn)行時(shí)每秒繪制了多少幀(60幀封頂):
1.選中Color Blended Layers, 可以得到界面的紅綠分布殊鞭,其中紅色的為透明部分,紅色部分越多對(duì)性能影響越大尼桶。
?設(shè)置
IMG_1657.PNG
2.監(jiān)測(cè)離屏渲染:
- Color Offscreen-Rendered Yellow
開啟后會(huì)把那些需要離屏渲染的圖層高亮成黃色操灿,這就意味著黃色圖層可能存在性能問題。
- Color Hits Green and Misses Red
如果shouldRasterize被設(shè)置成YES泵督,對(duì)應(yīng)的渲染結(jié)果會(huì)被緩存趾盐,如果圖層是綠色,就表示這些緩存被復(fù)用小腊;如果是紅色就表示緩存會(huì)被重復(fù)創(chuàng)建救鲤,這就表示該處存在性能問題了。
- GPU Driver 監(jiān)測(cè)GPU的消耗
Renderer Utilization
如果這個(gè)值超過了~50%秩冈,就意味著你的動(dòng)畫可能對(duì)幀率有所限制本缠,很可能因?yàn)殡x屏渲染或者是重繪導(dǎo)致的過度混合。
Tiler Utilization
如果這個(gè)值超過了~50%入问,就意味著你的動(dòng)畫可能限制于幾何結(jié)構(gòu)方面搓茬,也就是在屏幕上有太多的圖層占用了犹赖。
GPU Driver