-
if문과 case문의 성능비교program_language 및 궁금한것/Java 2019. 4. 18. 20:06
조별과제를 진행했다.
주제는 if~else if문과 case문의 실행 속도 비교였다.
같은 조건문을 if~else if문과 case문으로 코드를 만들었을 때 실행 결과가 나오는 시간을 재봤다.
case문이 0.001초 정도 빨랐다. 조건을 만 번 실행해서 말이다.
빠른 이유는 case문의 분기 테이블(점프 테이블) 때문이었다.
분기 테이블 이란 키와 벨류로 저장하는 것이다.
예를들어..
if~else if문은 su++; 을 읽을 때 Load su -> add 1-> save su 세 번의 연산이 된다.
하지만, case문은 비교할 때 두 번의 연산만 필요하다. 키를 찾으면 벨류를 출력하는 것이다. 아주 빠른 연산이다.
이런 이유로 if else if문은 최소 3번 ~ 4번 실행이 된다. 조건이 길수록 and and and 연산이 더 늘어나는 것이다.
하지만, 요즘의 컴퓨터 같은 경우는 워낙 성능이 좋기에 case문과 if~else if문 어느 걸 사용하느냐가 문제가 되지 않는다.
반응형'program_language 및 궁금한것 > Java' 카테고리의 다른 글
[자바] 삼항연산자 <-- ( 조건 ) ? 참일때 : 거짓일때 ; (0) 2019.04.18 8. 클래스 객체 생성, GC, static, NullpointException (0) 2019.04.18 7. Array , JavaBeans, 추상클래스 (0) 2019.04.16 6. 접근제한자와 this , Interface (0) 2019.04.15 이클립스 사용 단축키 (0) 2019.04.15