Jan*_*ano 34
图像与核心图形是一个直接的区别.渲染屏幕外/屏幕图形的方法更加复杂,需要使用Instruments来找出真正发生的事情.我试着在这里提供一个概述,但这个答案可以使用更多知识渊博的人的一些改进.
GPU总是在屏幕上呈现图形.但是,它们可以由GPU或CPU生成,并且发生在用户代码中或称为"渲染服务器"的单独进程中.这是一个概述:
CPU,用户代码:
drawRect().结果通常是缓存的.GPU,渲染服务器:
shouldRasterize设置为YES.这将创建图层和子图层的缓存.GPU,渲染服务器,非常慢:
setMasksToBounds)和动态阴影(setShadow*).UIViewGroupOpacity).GPU,快:
请注意,缓存仅在重用缓存时才有用.如果立即丢弃它会伤害性能.例如,可以缓存和重用内容被简单拉伸的缓存动画,但是内容更改的缓存动画将具有可怕的性能.
图像文件通常更快.
imageNamed:代替initWithData:.屏幕外绘图需要更多工作,但可以让您获得更多.
-[CALayer setShouldRasterize:YES]和-[CALayer setRasterizationScale:].无论是从图像文件读取还是通过绘图生成的可伸缩图像都使用较少的内存.拉伸是GPU的一种不昂贵的操作.
如果没有足够的性能,性能只是一个问题.除非另有说明,否则请使用速度更快的代码.最快的计划是首先进入市场的计划.
一些有趣的阅读:
| 归档时间: |
|
| 查看次数: |
3229 次 |
| 最近记录: |