Thursday, July 02, 2009

코딩 습관 - CASE1

이러 저러한 사정으로 블로그를 방치하다가...;
 
앞으로 다수에 걸쳐서 포스트 할 내용은 코딩 습관 시리즈이다 ^^;
 
어쩌면 사소한 부분이기도 하지만 이렇게 코딩습관을 들인다면, 실제 어플리케이션
 
성능에서도 많은 향상을 거두기도 한다.
 
 
오늘은 많이 사용하는 for 루프이다.
 
case #1
------------------------------------------------------------------------------
 
  for (int i=0; i<vo.size(); i++) {
     // biz logic
  }
 
case #2
------------------------------------------------------------------------------
  int size = vo.size();
 
  for (int i=0; i<size; i++) {
     // biz logic
  }
 
 
 
case 1과 case 2가 있는데 차이점은 무엇일까?
 
실제로 해당 어플리케이션에 부하 테스트를 하면 명확하게 차이가 발생하게 된다.
 
특히 vo.size(); 이부분에 로직에 따라 상당한 차이를 보이게 된다.
 
for 루프에서 조건절에 메소드를 사용하면 for루프를 돌때마다 해당 메소드를 호출한
 
결과를 가지고 조건을 검사하기때문에 어플리케이션이 느려지게 된다.
 
따라서, case #1과 같은 코딩습관을 버리고, case #2와 같이 별도의 변수를 통해 for 루프의
 
조건절을 처리하는게 어플리케이션 성능상 좋다..
 
사소하면서 어쩌면 이게 모야? 하기도 하지만;;;
 
이런 사소한것 하나 하나가 어플리케이션 튜닝의 첫걸음이다..
 
오늘부터라도 코딩의 습관을 바꾸삼~~~ ^^;

No comments: