어떤 프로그래밍을 하든 구문 사용은 기본 중의 기본이다.
하지만 그 반복 구문도 잘만 사용하면 성능 향상을 가져올 수 있다.
어찌 보면 단순하지만, 많은 성능 향상을 가져올 수 있는 반복 구문에 대해서 자세히 알아보자.
조건문은 성능에 얼마나 많이 영향을 줄까? 먼저 조건문에 어떤 것들이 있는지 보고,
조건문이 얼마나 성능에 영향을 주는지 알아보자.
조건문의 종류는 다음과 같다.
1. if-else if-else
2. switch
if문 안에는 boolean 형태의 결과값만 사용할 수 있다. switch문은 byte, short, char, int
이렇게 네 가지 타입을 사용한 조건 분기만 가능하다. 일반적으로 if문에서 분기를 많이 하면
시간이 많이 소요된다고 생각하는데, 아주 잘못된 생각이다. if문 조건 안에 들어가는 비교 구문에서
속도를 잡아먹지 않는 한, if 문장 자체에서는 그리 많은 시간이 소요되지 않는다.
<%
int runCount = 100000;
for(int loop=0; loop<runCount; loop++){
sw1.start();
if(loop<50){
}else if(loop<150){
}else if(loop<250){
}else if(loop<350){
}else if(loop<450){
}else if(loop<550){
}else if(loop<650){
}else if(loop<750){
}else if(loop<850){
}else if(loop<950){
}else{
}
sw1.stop();
}
out.println("<BR>"+sw1);
%>
여기에 있는 if 문장에서 얼마나 시간이 걸릴 거 같은가요? 결과는 다음과 같습니다.
Run Count : 100000, Total : 215.60ms, Average : 0.002156ms
10회의 if 문장을 수행할 때 소요되는 시간은 0.0021ms이다. 다시 말하면,
0.0000021초가 소요된다는 것이다. 이 결과는 로컬 노트북에서 나온것입니다.
이 소스가 유닉스나 윈도우 기반 서버에서 수행된다면 더 빠른 결과가 나올것입니다.
switch 문장도 마찬가지로 빠른 응답 결과가 나옵니다. Sun에 있는 문서를 보면 swtich는 숫자 비교 시,
if보다 가독성이 좋아지므로 정해져 있는 숫자로 분기를 할 때에는 swtich를 권장한다고 되어 있습니다.
그러므로 for 루프문에서 if 조건문이 많이 들어가있다고 무조건 느리다. '안좋다'라는 생각을 버리고
정해진 숫자의 경우는 swtich 그렇지 않은 조건에서는 for문을 사용해서 적절한 조건을 걸어서 프로그램을
만들어 주시면 될 거같습니다.
다음에는 이어서 for문을 좀 더 빠르고 간결하게 작성하는 방법에 대해서 작성하겠습니다.
그럼 이만.
끝.
'IT 관련 > java' 카테고리의 다른 글
java MVC 모델, mvc 모델2 패턴 (0) | 2022.02.17 |
---|---|
java GC (Garbage Collection)에 대해서 (0) | 2022.02.08 |
서블릿에서 한글 처리와 폼 데이터 처리하기 (0) | 2021.12.14 |
java 환경설정 > java -version (0) | 2021.11.14 |
java 다운로드 및 설치하기 - 자바 jdk, jre 설치 (0) | 2021.11.13 |