【Swift】関数の処理の実行時間を計測する方法!
この記事からわかること
- Swiftで処理の実行時間を計測する方法
- DispatchTimeの使い方
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
環境
- Xcode:15.0.1
- iOS:17.1
- Swift:5.9
- macOS:Sonoma 14.1
Swiftで処理の実行時間を計測する方法
Swiftで処理にかかった実行時間を計測するには単純に処理の開始前の時刻と処理の開始後に時刻の差を求めることで算出できます。KotlinのようにmeasureTimeMillis
メソッドのようなものはないので以下のように自前で実装しておくと使いやすいです。
おすすめ記事:【Android Studio/Kotlin】処理の実行時間を計測する方法!measureTimeMillis
// 処理の実行時間を計測するカスタムメソッド
func measureTime(task: () -> Void) {
let startTime = DispatchTime.now()
task()
let endTime = DispatchTime.now()
let executionTime = endTime.uptimeNanoseconds - startTime.uptimeNanoseconds
let executionTimeInSeconds = Double(executionTime) / 1_000_000_000
print("処理経過時間: \(executionTimeInSeconds) 秒")
}
// 測定したい処理をクロージャとして渡す
measureTime {
// 実行時間を測定したい処理
// 例
for i in 1...100_000 {
print(i)
}
}
実行すると以下のように処理にかかった時間を表示させることができます。
1
〜〜〜〜〜
1000000
処理経過時間: 3.057601833 秒
別に時刻を取得できればDate
などでも良いと思いますが、システムクロックを使用したDispatchTime
の方が精密な時間が取得できる気がするのでこちらを使用しているだけです。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。