반응형
#배경
회사에서 스터디를 하는데 if문 대신 switch문을 쓰는 이유가 뭐냐고 물어보셨다.
단순한게 if문이 복잡할 때에는 가독성이 떨어지니까 switch문을 사용한다고 생각했다.
근데 switch문이 더 속도가 빠르기 때문이라고 하셨다.
그래서 switch문이 속도가 더 빠른지 테스트를 해봤다.
# Code 작성
func CompareIfWithSwitch(month int64) {
var season string
startSwitch := util.CurrentTimeMillis()
fmt.Println("Switch문 시작 : ", startSwitch)
for ; month < 100000000; month++ {
switch month {
case 1, 2, 12:
season = "겨울"
case 3, 4, 5:
season = "봄"
case 6, 7, 8:
season = "여름"
case 9, 10, 11:
season = "가을"
default:
season = "계절아님"
}
}
endSwitch := util.CurrentTimeMillis()
fmt.Println("Switch문 끝 : ", endSwitch)
fmt.Println("Switch문 결과 :", endSwitch-startSwitch)
time.Sleep(6000)
startIf := util.CurrentTimeMillis()
fmt.Println("If문 시작 : ", startIf)
for month := 0; month < 100000000; month++ {
if month == 1 || month == 2 || month == 12 {
season = "겨울"
} else if month == 3 || month == 4 || month == 5 {
season = "봄"
} else if month == 6 || month == 7 || month == 8 {
season = "여름"
} else if month == 9 || month == 10 || month == 11 {
season = "가을"
} else {
season = "계절아님"
}
}
endIf := util.CurrentTimeMillis()
fmt.Println("If문 끝 : ", endIf)
fmt.Println("If문 결과 :", endIf-startIf)
fmt.Println(season)
}
for문을 돌려서 if문과 switch문을 비교했는데 2배 차이가 났다.
# Code 결과
Switch문 시작 : 1642949033776
Switch문 끝 : 1642949033871
Switch문 결과 : 95
If문 시작 : 1642949033879
If문 끝 : 1642949034085
If문 결과 : 206
계절아님
# 결론
if문보다 switch문이 빠르다
반응형
'Study > Go 언어' 카테고리의 다른 글
[golang] if문 공부하기 (0) | 2022.02.10 |
---|---|
[golang] 글자 양쪽 공백 제거하는 방법(trim) (0) | 2022.01.30 |
[golang] go get으로 패키지를 가져올 때 에러 메시지 (2) | 2022.01.16 |
[golang] github에 패키지 배포 (0) | 2022.01.16 |
[golang] go 개발 환경설정 (0) | 2022.01.16 |