iOSアプリでARCを使用しています。私は以下の方法をプロファイルしました。アルゴリズムはひどく素朴で無駄ですが、77%の時間がとに費やされobjc_retain
ていobjc_release
ます。からユニットをフェッチするラインまで下がっていなければならないと思いますNSArray
。ARCは毎回オブジェクトを保持してから解放するように注意しています。
私は情報に基づいたアドバイスを探しています:どうすればそれをエレガントに修正できますか?
-(CGFloat)getUncertaintyForUnits:(NSArray*)units Position:(MKMapPoint)position Zoom:(MKZoomScale)zoomScale {
CGFloat closest = MAXFLOAT;
for (int i = 0; i < [units count]; i++) {
Unit *units = (Unit*)[units objectAtIndex:i];
CGFloat distance = [self distanceBetweenMapPoints:unit.mapPoint And:position];
if (distance < closest) {
closest = distance;
}
}
CGFloat max = 100 / zoomScale;
return (1. - closest / max) * 0.9;
}