728x90
유의미한 차이는 없음
struct ContentView: View {
@State var count = 1
var body: some View {
VStack {
Button("count up") {
count *= 10
}
Button("act") {
print("count:", count)
DispatchQueue.global(qos: .default).async {
let time1 = ContinuousClock().measure {
for _ in 1...count { guardLetTest() }
}
print("time1:", time1)
}
DispatchQueue.global(qos: .default).async {
let time2 = ContinuousClock().measure {
for _ in 1...count { guardLet2Test() }
}
print("time2:", time2)
}
DispatchQueue.global(qos: .default).async {
let time3 = ContinuousClock().measure {
for _ in 1...count { ifLetTest() }
}
print("time3:", time3)
}
DispatchQueue.global(qos: .default).async {
let time4 = ContinuousClock().measure {
for _ in 1...count { ifLet2Test() }
}
print("time4:", time4)
}
}
}
}
}
func guardLetTest() {
let a: Int? = 0
guard let b = a else { return }
guard let c = a else { return }
guard let d = a else { return }
guard let e = a else { return }
guard let f = a else { return }
guard let g = a else { return }
guard let h = a else { return }
return
}
func guardLet2Test() {
let a: Int? = 0
guard let b = a, let c = a, let d = a, let e = a, let f = a, let g = a, let h = a else { return }
return
}
func ifLetTest() {
let a: Int? = 0
if let b = a {
if let c = a {
if let d = a {
if let e = a {
if let f = a {
if let g = a {
if let h = a {
return
}
}
}
}
}
}
}
}
func ifLet2Test() {
let a: Int? = 0
guard let b = a, let c = a, let d = a, let e = a, let f = a, let g = a, let h = a else { return }
return
}
count: 1
time1: 3.85e-05 seconds
time2: 1.0416e-05 seconds
time3: 4.958e-06 seconds
time4: 2.875e-06 seconds
count: 10
time1: 2.7667e-05 seconds
time3: 4.25e-06 seconds
time2: 8.125e-06 seconds
time4: 1.4792e-05 seconds
count: 100
time1: 4.7208e-05 seconds
time2: 3.4875e-05 seconds
time3: 6.8167e-05 seconds
time4: 5.9209e-05 seconds
count: 1000
time1: 0.00048825 seconds
time2: 0.000468416 seconds
time4: 0.000463125 seconds
time3: 0.000465875 seconds
count: 10000
time1: 0.002039333 seconds
time2: 0.002038209 seconds
time4: 0.001987583 seconds
time3: 0.002036375 seconds
count: 100000
time4: 0.026738583 seconds
time1: 0.027875583 seconds
time3: 0.028229458 seconds
time2: 0.029170791 seconds
count: 1000000
time2: 0.177870083 seconds
time3: 0.179924584 seconds
time4: 0.180253875 seconds
time1: 0.180686792 seconds
count: 10000000
time1: 1.597427875 seconds
time3: 1.598915208 seconds
time4: 1.599861 seconds
time2: 1.600395625 seconds
count: 100000000
time4: 15.730297667 seconds
time2: 15.737844167 seconds
time1: 15.7668265 seconds
time3: 15.774202333 seconds
count: 1000000000
time1: 156.937774208 seconds
time2: 156.96027958300002 seconds
time3: 157.04179612500002 seconds
time4: 157.052094 seconds
728x90
'Swift' 카테고리의 다른 글
Swift: add, adds, append, appends 속도 비교 (0) | 2025.03.30 |
---|---|
Swift: add, append 속도 비교 (0) | 2025.03.30 |
Swift: async let 수행 순서 (0) | 2025.03.30 |
Swift Concurrency (0) | 2025.02.04 |
알쓸스잡 - 8 (0) | 2025.02.02 |