まいまいワークス

主にiPhoneアプリの開発で考えた事、調べた事、感じた事などを記していきます。

プログラムの処理時間を計測する

処理時間計測の簡単な方法としてはNSLogを処理の始めと終わりに出力してその時間差を計算する方法がありますが、もう少し正確な計測をしてみたいと思います。

方法は以下の通り!

//これをインポートしておく
#import <sys/time.h>


//任意のメソッド内の記述
struct timeval start, stop;
gettimeofday(&start, NULL);

*** 実際の処理を行う記述 ***

gettimeofday(&stop, NULL);


double sec = stop.tv_sec - start.tv_sec;
double usec = stop.tv_usec-start.tv_usec;
double time = (stop.tv_sec*1000000+stop.tv_usec)-(start.tv_sec*1000000+start.tv_usec);
    
NSLog(@"sec=%f",sec);
NSLog(@"usec=%f",usec);
NSLog(@"time=%f",time);

tv_secで処理時間の秒の部分、tv_usecでマイクロ秒の部分を取得します。
トータルの処理時間は
double time = (stop.tv_sec*1000000+stop.tv_usec)-(start.tv_sec*1000000+start.tv_usec);
このような形で計算します。

[NSThread sleepForTimeInterval:0.5f];
このような形で処理の部分にwait timeを設定して挙動を確認してみてください。