为什么不需要图层支持的视图



我主要来自iOS开发。

为什么不想备份NSView的所有层?有什么表演上的成功吗?与每个UIView都有层支持的iOS有什么不同?

在iOS上,图形硬件基于平铺渲染。层背视图配置与硬件将内容合成到屏幕的方式非常匹配。

在Mac操作系统上,硬件不使用平铺渲染。当您要求使用基于层的视图时,会增加程序的内存占用。在Mac操作系统上,屏幕通常是双缓冲的,因此任何时候都有2个屏幕副本。我相信层支持的视图也是双缓冲的(这一点可能是错误的),所以您需要使用更多的内存。当打开层支持视图时,将递归地对视图的所有子视图执行此操作。如果您的视图有很多重叠的子视图,那么您可能会大大提高内存需求。

我不知道,但我怀疑,在Mac操作系统中,层支持视图的渲染速度比非层支持视图稍慢。渲染性能有很多因素,因此可能取决于具体情况。

我建议你自己做一些测试,包括视频内存的使用和现实世界的性能。Xcode和仪器中的新OpenGL工具将允许您跟踪视频内存的使用情况。(它与主存储器不同。)

最新更新