instrument 之Core-Animation 性能调优(Color Hits Green and Misses Red)

by admin on 2018年10月2日

北京市区的温度以于零上和零下来回切换,2017年冬季之率先摆雪眼瞅着拖到2018年了。无需感慨雪姑娘的姗姗来迟,可靠又可爱的人为造雪机,已经当京城依次雪场兢兢业业工作多天,本周以有五寒雪场开放高级道。

备考:有成百上千要命好之稿子说拿shouldRasterize(光栅化)个人认为应该遵循PS中间专业术语来讲,个人理解。

匪晓出无起同伴不亮这个字“栅”怎么读了,我特别百度了瞬间,有四栽读法。

栅栏有四单读法:zhà,cè,shān,shi。

彼翔说明啊:

栅 [zhà]:用竹木铁条等做成的阻拦物:~栏。~子。


[shān]:1.〔~极〕多极电子管因阴极的一个电极。2.〔光~〕产生一味之衍射图像的光学仪器。

栅 [shi]:〔上~〕〔下~〕地名,均于华广东省。

最新消息:北京密云的南山滑雪场,昌平的军都山滑雪场、平谷的渔阳滑雪场、顺义的莲花山滑雪场、怀柔的怀北滑雪场都陆续盛开高级道,对于那些针对饱受级道有点烦的滑雪老炮们吧,这确实是令人兴奋的好信息。

栅格化(PS专业术语)

栅(shān)格化,是PS未遭的一个专业术语,栅格即像素,栅格化即将矢量图形转化为各图(栅格图像)。最基础之栅格化算法将多边形表示的老三维情景渲染暨二维表面。

南山滑雪场:火力全开全山开放

位图

顾是位图术语比较茫然,然后自己问了瞬间咱们合作社之UI,才懂这个术语。

我的明:图像尚未受栅格化之前任意放,都无见面失帧。而栅格化化之后如果随着放大的翻番在长,失帧会随着倍数的增而增加。故:栅格化本身即是雅成一个原则性像从的图像。

1. 关于CALayer的shouldRasterize(栅格化)

@property BOOL shouldRasterize;

     When true, the layer is rendered as a bitmap in its local
coordinate  space (“rasterized”), then the bitmap is composited into the
destination (with the minificationFilter and magnificationFilter
 properties of the layer applied if the bitmap needs scaling).
Rasterization occurs after the layer’s filters and shadow effects are
applied, but before the opacity modulation. As an implementation  detail
the rendering engine may attempt to cache and reuse the bitmap from one
frame to the next. (Whether it does or not will have no affect on the
rendered output.) When false the layer is composited directly into the
destination whenever possible (however, certain features of the
compositing model may force rasterization, e.g. adding filters).
Defaults to NO. 

动用阴影时又安装 shadowPath
就能免离屏渲染大大提升性能,但是使用不当也会招致性能的消耗。

CALayer 有一个 shouldRasterize 属性,将以此特性设置成 true
后就是被了光栅化。开启shouldRasterize后,CALayer会被栅格化为bitmap,layer的影等功效也会见吃保存到bitmap中,光栅化后会拿图层绘制到一个屏幕外之图像,然后是图像将会晤被缓存起来连绘制到实在图层的
contents
和子图层,对于发生过多底子图层或者有复杂的效力下,这样做就会见比重绘有工作的兼具帧来更加快捷。但是光栅化原始图像需要时日,而且会消耗额外之内存。

用:当我们被栅格化后,需要留意4点题材。

  1. 一旦我们创新都栅格化的layer,会导致大气底offscreen渲染。

    因此CALayer的栅格化选项的拉开也需我们仔细衡量采用状况。只能用在图像内容无移的前提下之:

            用于避免静态内容之繁杂特效的重绘,例如前面说到之UIBlurEffect

            用于避免多独View嵌套的复杂性View的重绘。

    而对时常转移的情节,这个时刻绝不开,否则会招致性能的荒废。

比如说我们日程时应酬的TableViewCell,因为TableViewCell的重绘是深频繁的(因为Cell的复用),如果Cell的情节连转变,则Cell需要不停重绘,如果此时装了cell.layer可栅格化。则会造成大量的offscreen渲染,降低图形性能。

本,合理采取的话,是能够取得多性质的增强的,因为用shouldRasterize后layer会缓存为Bitmap位图,对有的加加了shawdow等职能的淘资源比较多之静态内容进行缓存,能够抱性的升官。

  1. 甭过于用,系统限制了缓存的分寸也2.5X Screen Size.

    如果过度用,超出缓存之后,同样会导致大气之offscreen渲染。

  1. 深受栅格化的图样如果跨越100ms没有给下,则会受移除

    因此我们应当就对连续不停以的图样进行缓存。对于不常使用的图片缓存是不曾意义,且耗费资源的。

  1. 当 UIView.layer.shouldRasterize = YES
    时,生成的位图会缓冲起来,如果TabelView 滑动的时段(UITableViewCell
    复用)使用缓存直接命中,就显示绿色,反之,如果不命中,这时便显得红色。红色越多,性能更加差.

测试demo

希冀被来几乎独有意思的地方

 1. 前后微小幅度滑动时,一直是绿色

  1. 上下比充分幅面滑动,新出现的label一始发是新民主主义革命,随后变成绿色

  2. 倘静止一秒钟,刚开头滑动时见面更换红。

立马是坐layer进行栅格化继渲染成各图在缓存中。当屏幕出现滑动时,我们直接打缓存中读取而不必渲染,所以会见看出绿色。当新的label出现常常,缓存中莫单是label的位图,所以会见成为红色。第三碰于重要,缓存中的靶子有效期只来100ms,即如在0.1s内尚未给下就会见自行从缓存中清理出。这就算是胡停留一会儿双重滑动就会见看红色。

栅格化的缓存机制是一模一样把双刃剑,先勾勒副缓存还念博来或损耗比较多的时光。因此栅格化才适用于较复杂的、静态的效力。通过Instrument的调节发现,这里用光栅化经常出现未命中缓存的景况,

小结:如果View的Frame和Content不常转移,开启shouldRasterize = YES
,反的则不用开浪费性能,如果TableView滑动
Cell使用位图则是绿色,反的革命,绿色越多属性更好,红色反之。

参考:

UIKit性能调优实战讲解

争正确地勾勒好一个界面

Mastering UIKit
Performance

What triggers “Color Copied Images” and “Color Hits Green and Misses
Red” in
Instruments?

WWDC
2014

12月19日,南山滑雪场发布新开片漫漫雪道:极限雪沟、高级猫跳道。

至今南山具雪道全部开放:高级道、南山麦罗公园(中、高级线路)、后山联排波浪道、初级猫跳道、中级猫跳道、老中级道、新被级道、野雪公园、小食广场双板初级道、初级小S道、散客厅南坡初级道、前山初级道、Mini
Park、儿童初级教学区、双板教学区、单板教学区、U型道、东区野蘑菇道、分体波浪道、超级雪梗、初中级练习道、旗门训练道。儿童雪地爬犁道娱雪道、雪地飞碟、雪地乐园开放。同时,开放三长条四人吊椅、6长好拖牵、8长小拖牵,7漫长魔毯配合运营。

持有的新家、中级水准、高级水平,爱公园的、爱猫跳的、爱挑战陡坡的,统统可以错过南山滑雪了。

军都山七爷重出江湖 你傲视群雄的上到了

12月19日,南山底顶峰雪沟并无寂寞,经过十几龙的造雪,军都山七爷今天为正式与豪门照面了,军都山七爷就是军都山的七声泪俱下道,因为坡陡导致压雪机不克制止雪,整条雪道也便愈狂野,大小雪包不计其数,极有挑战难度。

心心念念想只要挑战七爷、证明自己的同志等,走由吧。

京师最丰富的渔阳高级道开放

12月15日,渔阳宣布自己简单长各长1600米之高级道正式开,其实确实的尖端雪道就是一律修,下面接了点儿条不同的遭级道而已,但是某些吗未伤渔阳的高档道在长度达到如王称霸,不过,渔阳高级道的配套缆车是当真的放缓,天气好你还是可以方睡个午觉~

顺义莲花山之高档道开放

提早证实的凡京莲花山自身没有实际到看了,从官方雪道图、滑呗APP展示及公众点评网友评及,北京莲花山底尖端道比紧缺,好于高级道下面连接中级道,整体还是挺长的。

齐雪季重新开放的都城莲花山滑雪场,据说日常运营大幅升级,他的兄弟雪场可是中国之雪原麦加:亚布力阳光度假村,还是值得一摸索的。

性价比最高的怀北,除6声泪俱下道外全部开

怀北宣布12月22日开放7、8、9、10季条吃高等雪道,其中7号道也高级道,另外一长达高级道6如泣如诉道暂不开放。

怀北今年试点受高等雪道缆车卡与初中级雪区缆车卡分开,初中级滑雪者的缆车票不可知采用高级缆车,高级道上冒出新学者的概率大大降低。

号外:石京龙滑雪场啊初步高级道造雪工作了,预计1月1日开放高级道。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图