0
我有一個CMMotionManager設置與deviceMotionUpdateInterval設定在像100 HZ這樣:CABasicAnimation性能問題阻止
motionManager = [[CMMotionManager alloc] init];
motionManager.deviceMotionUpdateInterval = 1/100.0;
我使用像這樣的模塊,從陀螺儀獲取偏航值
[motionManger startDeviceMotionUpdatesToQueue:[NSOperationQueue currentQueue] withHandler:^(CMDeviceMotion *motion, NSError *error) { //get yaw values}];
我也有一個CABasicAnimation,在同一個區塊中進行動畫製作。我將每個動畫的持續時間設置爲0.01秒。動畫是一個圓形進度條,表示該設備旋轉了多少度。這可以在iPhone 5上正常工作。但是在iPhone 4和4S等較舊的設備上,進度條被填充和設備旋轉的實際程度值之間存在顯着的延遲。基本上,如果電話已經快速旋轉了180度,進度條的填充速度要慢得多,才能達到180度。在iPhone 5上的相同情況下,進度條將立即處於180度的角度。
我的問題是,我可以做些什麼來提高性能,以便動畫像iPhone 5一樣平滑和瞬間準確?
使用工具來弄清楚發生了什麼。您可能正在爭奪CPU。 iPhone 5擁有雙核心CPU,因此它確實是多線程的。 iPhone 4,我猜測,動畫無法啓動,因爲我們一直在通過對你的偏航更新塊的呼叫而受到打擊。 – matt 2013-03-22 20:50:46
你能建議在儀器中準確地監測什麼嗎? CPU時間?動畫幀率? – thisiscrazy4 2013-03-22 22:08:44
是的,我認爲你可以做一個時間分析器,看看什麼是放慢動畫。 – matt 2013-03-22 23:46:36