728x90
반응형
다음과 같은 코드가 있다고 가정해보자
.
.
.
for(int i = 0; i < peopleList.getSize(); i++){
System.out.println(i + "번 째 사람");
}
.
.
.
(아무 의미없는 코드이다.)
언뜻보면 이게 무슨 낭비가 있나 싶을 정도로 사소하게 일어나는 실수 중 하나로 peopleList.getSize()가 실수한 부분이다. 이 반복문의 수행 구조를 살펴보면 getSize()함수가 계속 호출되고 있다. 여기서는 하나의 함수만을 호출하는 경우이지만 다음 코드에서는 더욱 심한 차이를 보이게 된다.
.
.
.
for(int i = 0; i < company.getInstance().getHRgroup().getStaffNum(); i++){
System.out.println(i + "번 째 사람");
}
.
.
.
.위 company.getInstance().getHRgroup().getStaffNum() 부분에서는 함수를 3번 타고 들어가서 사이즈를 알아내는 행동을 계속적으로 반복하게 된다. 이는 프로그램의 사이즈가 커질수록 성능저하에 영향을 더욱 미치게 된다.
그러므로 위 방식은 아래와 같이 사용하는 것을 권장한다.
.
.
.
int staffSize = company.getInstance().getHRgroup().getStaffNum();
for(int i = 0; i < staffSize; i++){
System.out.println(i + "번째 직원");
}
.
.
.
728x90
반응형