少なくとも1msの精度でメッセージをオブジェクトに送信するのにどれくらいの時間がかかりますか?これはどうすればいいですか?iPhoneで関数を呼び出すのにかかる時間を正確に計測するにはどうすればよいですか?
9
A
答えて
12
は、ここで私は何をすべきかです:
NSDate * start = [NSDate date];
// do whatever I need to time
NSLog(@"time took: %f", -[start timeIntervalSinceNow]);
出力は(小数部分で)秒になります。 NSDate
は、どれだけ正確であるか正確にはわかりませんが、ミリ秒のスケールで解決しています。
時間のかかるコードが速すぎる場合は、コードを100回実行するループに入れます。 (もちろん、タイミングをとっているコードに副作用がないと仮定します)。
15
mach_absolute_time
を使用すると、ナノ秒単位で測定できます。
#import <mach/mach_time.h>
uint64_t startTime = 0;
uint64_t endTime = 0;
uint64_t elapsedTime = 0;
uint64_t elapsedTimeNano = 0;
mach_timebase_info_data_t timeBaseInfo;
mach_timebase_info(&timeBaseInfo);
startTime = mach_absolute_time();
//do something here
endTime = mach_absolute_time();
elapsedTime = endTime - startTime;
elapsedTimeNano = elapsedTime * timeBaseInfo.numer/timeBaseInfo.denom;
0
使用dispatch_benchmarkは、ナノ秒単位でのメソッドの実行時間をログに記録します。
これは、手作業での呼び出しと呼び出しよりも構文がはるかに優れています。mach_absolute_time() dispatch_benchmarkはGrand Central Dispatchの一部です。
size_t const blockIterations = 1; //block call count
uint64_t t = dispatch_benchmark(blockIterations, ^{ //your code inside block
[self TEST_processJSONDataRecordsWithCompletionHandler:^(id handler) {}];
});
NSLog(@" Avg. Runtime in nanoseconds : %llu ns", t);
クレジットがBenchmarking
に行く:ログの実行時間のためにextern uint64_t dispatch_benchmark(size_t count, void (^block)(void));
私はこれを使用しています:あなたが自分で使用する前にそれを行う必要がありますので、この機能は公に、宣言されていません。
関連する問題
- 1. ページの離脱の確認時に関数を呼び出すにはどうすればよいですか?
- 2. javaメソッド呼び出し時間を測定するにはどうすればよいですか?
- 3. PythonプロセスのCPU時間を正確に測定するにはどうすればよいですか?
- 4. iPhoneアプリケーションの起動にかかる時間を確認するにはどうすればよいですか?
- 5. 呼び出し時にjsを関数に追加するにはどうすればよいですか?
- 6. JavaScript関数を呼び出すにはどうすればよいですか?
- 7. ビューの入力時にIonicで関数を呼び出すにはどうすればよいですか?
- 8. AngularJS関数の外で関数を正しく呼び出すにはどうすればいいですか?
- 9. 関数を呼び出すにはどうすればいいですか?
- 10. フラグメント内の関数を別の関数から呼び出すにはどうすればよいですか?
- 11. モーダルダイアログの確認結果を呼び出し関数に戻すにはどうすればいいですか?
- 12. iPhone Safariでページロード時間を測定するにはどうすればよいですか?
- 13. anglejsで同時にmulple関数を呼び出すにはどうすればいいですか?
- 14. モックメソッドで関数が呼び出されているかどうかを確認するにはどうすればよいですか?
- 15. setIntervalのコールバックが指定された間隔で正確に呼び出されるようにするにはどうすればよいですか?
- 16. 呼び出す前にこの関数を定義するにはどうすればよいですか?
- 17. wxPythonを使用して検索する関数に関数を呼び出す(例)関数を呼び出すにはどうすればいいですか?
- 18. コンポーネントのレンダリング後に関数からディレクティブを呼び出すにはどうすればよいですか?
- 19. 関数を呼び出すときに引数名を渡すにはどうすればよいですか?
- 20. 行がPythonで有効な関数呼び出しであるかどうかを確認するにはどうすればよいですか?
- 21. 一定時間後にメソッド呼び出しを行うにはどうすればよいですか?
- 22. 以下の関数の時間複雑度を計算するにはどうすればよいですか?
- 23. 複数のWCF呼び出しを設計するにはどうすればよいですか?
- 24. 関数内の関数でモジュールを呼び出すにはどうすればいいのでしょうか?
- 25. Twilio関数内から環境変数を呼び出すにはどうすればよいですか?
- 26. differentnent関数から変数を呼び出すにはどうすればよいですか?
- 27. 複数のクラスメソッドを呼び出すrakeタスクを設計するにはどうすればいいですか?
- 28. 関数呼び出しから関数(e、arg)をjQueryで使用するように変更するにはどうすればよいですか?
- 29. reactJs内の別のコンポーネントからtimeinterval関数を呼び出すにはどうすればよいですか?
- 30. javascript関数を呼び出すコントロールを取得するにはどうすればよいですか?
これは私が走っているものです。私は個人的にはボトルネックを心配しているので、それが速すぎるかどうか気にしません。 =) – migs647