대부분은 my answeryour other question에 유사합니다
합성은 지금까지, 빠릅니다. iPhone의 경우 콘텐츠는 Quartz 그리기 호출을 사용하거나 비트 맵 이미지를 사용하여 CALayer (또는 UIView의 백업 CALayer)로 그려집니다. 이 레이어는 래스터 화되고 GPU에서 OpenGL 텍스처로 효과적으로 캐싱됩니다.
이 드로잉 및 캐싱 작업은 비용이 많이 들지만 일단 GPU에 레이어가 있으면 하드웨어 가속 방식으로 이동, 크기 조절, 회전 등의 작업을 수행 할 수 있습니다. 레이어가 움직이는 동안 모든 GPU는 모든 프레임의 다른 화면 레이어와 합성해야합니다. 이것이 Core Animation이 가장 오래된 iPhone 모델에서도 60FPS로 화면 주위에서 50 개의 레이어 애니메이션을 할 수있는 이유입니다.
레이어 및보기는 메시지가 표시 될 때 또는 needsDisplayOnBoundsChange
속성이 YES로 설정된 경우 크기가 조정 된 경우에만 다시 그립니다. 도면 시스템은 레이어 내용을 다시 그리거나 다시 캐시하는 것이 얼마나 비싸므로 이러한 방식으로 설정됩니다. 가능한 경우 레이어 컨텐트를 정기적으로 다시 그리지 말고 대신 Core Animation을 사용하여 개별적으로 애니메이션을 적용 할 수있는 레이어 나 뷰로 분할하십시오. 변화하는 도형에 애니메이션을 적용해야하는 경우 CAShapeLayer를 사용하면 모든 프레임을 다시 그리는 것보다 훨씬 효율적입니다.
최악의 경우 네, 정적 인보기의 부분을 가져 와서 한보기로 이동 한 다음 그 안에 변경된 부분 만 가진 하위보기를 가질 수 있습니다. 성능은 좋지 않지만보기에서 모든 것을 다시 그려야하는 것보다 훨씬 낫습니다. 합성 오버 헤드는 드로잉 비용에 비해 무시할 수 있습니다.