【Swift4】関数の処理の実行時間を計測する方法【Xcode9】

2020年8月27日

関数の処理スピードを計測して、アプリで重たい動きになっている箇所が、どのプログラムが原因になっているのか特定するのに役立つ関数をご紹介します。

アプリのパフォーマンスチューニングに是非役立ててください。

関数の処理スピードを計測するプログラム

func funcTime(_ log: String, action: () -> Void) {
        let startDate = Date()
        action()
        let endDate = Date()
        print("\(log) \(endDate.timeIntervalSince(startDate))")
}

使い方

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.funcTime("self.test", action: {
            self.test()
        })

    }
    
    func test() -> Void {
        for i in 0..<10000 {
            print(i)
        }
    }
    
    func funcTime(_ log: String, action: () -> Void) {
        let startDate = Date()
        action()
        let endDate = Date()
        print("\(log) \(endDate.timeIntervalSince(startDate))")
    }

}

実行結果

self.test 0.0653520822525024

このように第一引数にいれたログと実行時間が出力されるようになっています。
今回単純に1000回ログを出力するプログラムを実行しましたが0.06秒かかっていることがわかります。

このように自分で作成した関数や処理がどのぐらいの処理時間となっているのかを調べることでアプリの動作が重たくなっているプログラムを調べることができます。

大規模な開発になればなるほど、パフォーマンスチューニングの役割はとても重要になってくるので役立つまめちしきとして覚えておきましょう。