Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
31
Help us understand the problem. What is going on with this article?
@Qiic

通信、パースなど処理にかかる時間を計測する。

More than 5 years have passed since last update.

処理にかかる時間を計測

基本的なことですが、通信にかかる時間やダウンロードをしたデータをパースするなどユーザーに極力待たせずに処理を終わらせるのが望ましいとは思います。

連続した処理などで実際どの処理で時間がかかっていたのか知らずにやっていて、調べてみたら思っていた所と違う場所で処理に時間がかかっていた、、、ということがあったので忘備録的に書いてみます。


// インスタンス変数
NSDate *startDate;
NSDate *endDate;

// 処理開始位置で現在時間を代入
startDate = [NSDate date];

// 処理終了位置で現在時間を代入
endDate = [NSDate date];

// 開始時間と終了時間の差を表示
NSTimeInterval interval = [endDate timeIntervalSinceDate:startDate];
NSLog(@"処理開始時間 = %@",[self getDateString:startDate]);
NSLog(@"処理終了時間 = %@",[self getDateString:endDate]);
NSLog(@"処理時間 = %.3f秒",interval);


// 日付をミリ秒までの表示にして文字列で返すメソッド
- (NSString*)getDateString:(NSDate*)date
{
     // 日付フォーマットオブジェクトの生成
     NSDateFormatter *dateFormatter = [NSDateFormatter new];
     // フォーマットを指定の日付フォーマットに設定
     [dateFormatter setDateFormat:@"yyyy/MM/dd HH:mm:ss.SSS"];
     // 日付の文字列を生成
     NSString *dateString = [dateFormatter stringFromDate:date];

     return dateString;
}

NSDateを出力すると下図の様になって正確な時間まで分からない(差は正確に表示されています)
uploading image.png...

ミリ秒まで表示するメソッドを使って表示すると差が分かりやすい。
uploading image.png...

31
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Qiic

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
31
Help us understand the problem. What is going on with this article?