자바 성능 튜닝 이야기 for 루프

자바 성능 튜닝 이야기 for 루프

2022, May 16    

알아보게 된 이유.

자바 성능 튜닝 이야기라는 책을 읽으며 자바의 성능을 올릴 수 있는 이야기들을 정리해보고 자 한다.

for 루프를 더 빠르게 할 수 있는가?

[조건문에서의 속도]

if문 안에는 boolean 형태의 결과 값만 사용. switch문은 JDK 6까지 byte,short,char, int 이렇게 네가지 타입을 사용한 조건 분기만 가능. JDK 7부터 String도 사용가능하다. 일반적으로 분기를 많이하면 시간이 많이 소요된다고 생각하지만 조건 안에 들어가는 비교구문에서 시간이 들어가지 않는 이상 if 문 자체에는 시간이 그리 소요되지 않는다.

Switch case 문은 작은 숫자부터 큰 숫자를 비교하는게 가장 빠르다. 대상이 되는 case 수가 적으면 상관 없지만 많으면 많을 수록 case에서 소요되는 시간이 오래 걸린다.

[반복문에서의 속도]

일반적으로 for문을 많이 사용, while문도 사용하는데 잘못하면 무한루프에 빠지므로, 되도록이면 for문을 사용하는 것을 권장한다.

for ( int loop = 0; loop < list.size(); loop ++)

위와 같이 코딩하는 습관은 좋지 않다. 매번 반복하면서 메서드를 호출하기 때문이다.

int listSize = list.size();
for(int loop = 0; loop < listSize; loop ++)

위와 같이 코딩하면 메서드 반복 호출이 없어지므로 더 빠르게 처리된다.

for-each는 데이터의 첫번째 값부터 마지막까지 처리해야 할 경우에만 유용하다. 만약 순서르르 거꾸로 돌리거나 특정 값부터 데이터를 탐색하는 경우에는 적절하지 않다.