여러 연산이 이루어진 후 문자열을 출력해줘야하는
문제가 있다고 가정을 해보겠다.
부득이하게 문자열을 문자열의 배열 형태로 연산이 진행되다가
마지막에 문자열의 형태로 출력을 해줘야 하는 상황에서
나의 생각은 '출력할 때 print(_ :termination: "")의 형태로
출력을 해준다면 문자열을 출력한 것처럼 보여질 것이다' 였다.
문제의 정답은 맞았지만 문득 나는 궁금해졌다.
그렇다면 시간 상으로는 '문자열 처럼 보여지게 출력하는 것과
문자열로 타입을 변환해주는 것 이 둘중에 어떤 것이 더 빠를까?'
라는 것이 궁금했던 것이고 나는 해당 생각을 토대로 시간을 계산해봤다.
let arr = Array(repeating: "a", count: 10000)
let clock = ContinuousClock()
let test1 = clock.measure {
arr.forEach {
print($0, terminator: "")
}
}
print()
let test2 = clock.measure {
print(arr.joined())
}
print("test1 :: \(test1)")
print("test2 :: \(test2)")
결과는 문자열로 변환해서 출력해주는 것이 빨랐지만 너무나도 확연한 차이를 보여줬다는 것이다.
문자열 처럼 보여지게 출력을 하려면 반복문을 돌면서 계속 print() 함수를 호출해줘야 하기에
시간 차이가 나는 것이 아닐까 라는 생각이 든다.
다음부터는 앱을 개발하던, 알고리즘 문제를 풀던 문자열로 변환 후 진행해야겠다.
'iOS > Swift' 카테고리의 다른 글
Swift - Any와 AnyObject (1) | 2024.04.18 |
---|---|
Swift Optional(2) (1) | 2024.04.06 |
Swift @discardableResult (1) | 2024.04.06 |
Swift 배열(Array)의 Capacity 및 reserveCapacity (1) | 2024.04.06 |
Swift Function-Deep 함수의 표기법 (0) | 2024.04.06 |