Instrument之Core Animation

Core Animation工具用來檢測Core Animation性能,它為我們提供了周期性的FPS(Frames Per Second 每秒傳輸的幀

Screen Shot 2016-02-11 at 4.44.10 PM.png

為了做到動畫的平滑,你需要以60FPS(幀每秒)的速度運行,以同步屏幕刷新速率。通過基于NSTimer
或者CADisplayLink
的動畫你可以降低到30FPS,而且效果還不錯,但是沒辦法通過Core Animation做到這點。如果不保持60FPS的速率,就可能隨機丟幀,影響到體驗。

Core Animation工具也提供了一系列復選框選項來幫助調試渲染瓶頸:

  • Color Blended Layers 這個選項基于渲染程度對屏幕中的混合區域進行綠到紅的高亮顯示。由于重繪的原因,混合對GPU性能有影響,同時也是滑動和動畫幀率下降的罪魁禍首之一。

  • Color Hits Green and MissesRed當使用shouldRasterizep屬性的時候耗時的圖層繪制會被緩存,然后當做一個簡單的扁平圖片呈現。當緩存再生的時候這個選項就用紅色對柵格化圖層進行了高亮。如果緩存頻繁再生的話,這就意味著,柵格化可能會有負面的性能影響了。

  • Color Copied Images 有時候寄宿圖片的生成意味著Core Animtaion 被強制生成一些圖片,然后發送到渲染服務器,而不是簡單的指向原始指針。這個選項把這些圖片渲染成藍色。復制圖片對內存和CPU使用來說,是一項非常昂貴的操作,所以應該盡可能避免。

  • Color immediately 通常 Core Animation Instrument 以每秒以每秒十次的頻率更新圖層調試顏色。對某些效果來說,這顯然太慢了,這個選項就可以設置每幀都更新(可能會影響到渲染性能,而且會導致幀率測量不準,所以不要一直都設置它)。

  • Color misaligned Images 這里會高亮那些被縮放或者拉伸,以及沒有正確對起到像素邊界的圖片。這些中大多數通常會導致圖片的不正??s放,如果把一張大圖當縮略圖顯示,或者不正確的模糊圖像。那么這個選項會幫你識別出問題所在。

  • Color Offscreen-Rendered Yellow 這里會把那些需要離屏渲染的圖層高亮成黃色。這些圖層很可能需要用shadowPath或者shouldRasterize來優化。

  • Color OpenGL Fast Path Blue 這個選項會對任何使用OpenGL繪制的圖層進行高亮。如果僅僅使用UIKit或者Core Animtaion的API,那么不會有任何效果。

  • Flash Updated Regions 這個選項會對重繪的內容高亮成黃色(也就是任何現在軟件層面使用Core Animtaion繪制的圖層)。這種繪圖的速度很慢,如果頻繁發生這種情況的話,這意味著有一個隱藏的bug,或者說通過增加緩存,或使用替代方案會有提示的空間。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容