DateFormatter
의 초기화 비용과 operation 동작 시간이 얼마나 걸리는지 알아보는 테스트를 진행했습니다.
DateFormatter
생성 작업이 얼마나 걸리는지, 어떤 부분이 비용이 많이 드는지 테스트하기 위해 XCTest의 measure 메소드를 사용했습니다.
measure 메소드는 코드 실행에 걸리는 시간을 대략적으로 알려준다고 해요.
DateFormatter 인스턴스 생성 시간을 다른 인스턴스의 생성 시간과 비교해보았습니다. DateFormatter
, Date
, NSString
, UIView
를 대상으로 테스트를 진행했습니다.
/// DateFormatter() 생성
func testDateFormatterCreation() throws {
self.measure {
for _ in (0..<numberOfIterations) {
let df = DateFormatter()
}
}
}
/// Date() 생성
func testDateCreation() throws {
self.measure {
for _ in (0..<numberOfIterations) {
let date = Date()
}
}
}
/// NSString() 생성
func testNSStringCreation() throws {
self.measure {
for _ in (0..<numberOfIterations) {
let foo = NSString(format: "foo")
}
}
}
/// UIView() 생성
func testViewCreation() throws {
self.measure {
for _ in (0..<numberOfIterations) {
let view = UIView()
}
}
}
결과
인스턴스 | 생성 시간 |
---|---|
DateFormatter | 1ms |
NSString | 0.2ms |
UIView | 20ms |
Date | 0.5ms |
DateFormatter Creation: 0.001s = 1ms