環境
- Xcode 9.2
- Apple Swift version 4.0.3 (swiftlang-900.0.74.1 clang-900.0.39.2)
はじめに
- パフォーマンス改善を行うときにTime Profilerを使ったのでそのときに行ったことをまとめて見ました
Time Profilerとは
実行中のプロセスについて、オーバーヘッドの小さい時間ベースのサンプリングを実行します。OS XまたはiOSで利用できます。
使い方
Xcode > Open Developer Tool > Instrumentsから開きます
Time Profilerを選択する
端末かSimulatorを選択して Recordボタンを押すと計測が開始される
計測された処理が表示されます
Call Treeで設定を変えることで表示される情報が変わります
- 重い処理を特定する為に設定を変更して絞り込みます
メソッドをダブルクリックすると実装したコードへジャンプできます
- コードへジャンプすることで重い処理の中からさらに詳しくみることができます
viewDidLoad()
test()
test2()
サンプルコード
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
test()
test2()
}
private func test() {
var list = [String]()
for i in 0...10000 {
list.append(i.description)
}
let text = list.joined(separator: ",")
print(text)
}
private func test2() {
var list = [String]()
for i in 0...100000 {
list.append(i.description)
}
let text = list.joined(separator: ",")
print(text)
}
}
まとめ
- Time Profilerを使いこなすことで重たい処理を特定し、パフォーマンス改善につなげることができました