0

내가 성능을 내 아이폰 응용 프로그램을 테스트입니다 행렬을 변환 :아이폰 OS 코어 애니메이션은 : CATransaction와 성능 문제가/보간

// using CATransaction like this goes from 14fps to 19fps 
[CATransaction begin]; 
[CATransaction setDisableActions: YES]; 

// NEG, as coord system is flipped/messed up 
self.transform = CGAffineTransformMakeRotation(-thetaWheel); 

[CATransaction commit]; 

질문 : 왜 이전 및 변환 행렬 새로운 사이에 보간의 핵심 애니메이션의 기본 동작을 사용하지 않습니다 그런 성능 향상을 줘?

이렇게 계산하면 비용이 많이들 수 있습니다. 비록 그들이 두 매트릭스 사이의 보간을 위해 세계에서 가장 정교한 기법을 사용하고있다 할지라도, 이것이 5fps에 달할 것이라고 믿을 수 없습니까?! I 과정을 상상할 수

는 두 위치 사이에서 보간하는 프레임별로 적용 사이에서 동기화해야 CAAnimations를 생성

+1

두 행렬의 선형 혼합이 아닙니다. 아이덴티티 변환과 180 ° 회전 사이에 애니메이션을 적용하면 Core Animation이 수행하는 작업을 고려해보십시오. 스케일 변경없이 회전을 얻는 반면 선형 혼합은 중간에 0 행렬을 남겨 둡니다. – Pivot

답변

0

M_target M_resultant = K * M_last + (1-K) 이외 *이고 렌더링 스레드와 메인 스레드.

거래 비용은 얼마나 많은 레이어를 한 번에 애니메이션으로 표시하는지에 비례합니다. 병목 현상을 확인하기 위해 앱 프로파일 링을 시도하십시오.