オブジェクトの割り当て (またはその他のもの) をチェックする正しい方法は何だろうと思いました。私はいくつかのパフォーマンス テストを自分で行いましたが、メソッドを呼び出さずにチェックすると、「膨大な」時間を節約できることがわかりました。良いコーディングと見なされる方法はどれですか? 以下のテストと結果。
定義:
#define checkUM if (!um) {um = [[UtilityMaster alloc]init]; }
対メソッド:
-(void) checkUtility {
if (!um) {um = [[UtilityMaster alloc]init]; }
}
チェック用のコード:
int imax = 1000000000;
int i = 0;
IFD100(@"check method")
while (i <= imax) {
[self checkUtility];
i++;
}
IFD100(@"check method end")
i = 0;
IFD100(@"check define")
while (i <= imax) {
checkUM;
i++;
}
IFD100(@"check define end")
チェック 1:
2013-06-25 18:36:16.712 check method
2013-06-25 18:36:27.669 check method end <-- 10.957 secs
2013-06-25 18:36:27.670 check define
2013-06-25 18:36:30.128 check define end <-- 2.458 secs
チェック 2:
2013-06-25 18:37:18.900 check method
2013-06-25 18:37:28.678 check method end <-- 9.778 secs
2013-06-25 18:37:28.679 check define
2013-06-25 18:37:31.136 check define end <-- 2.457 secs