Java String 연산할때는 StringBuffer를 사용하자

 얼마전 엑셀 Export 를 제작하는 도중 Export 할때 속도가 너무 안나오는 현상을 발견했다. 소스를 쿼리, 데이터 변형과정, HTML Table 생성과정을 각각 분리하여 시간을 쟀는데 쿼리보다 HTML Table을 만드는데 더 오래걸렸다. 상당히 많은 양을 처리하는데 쿼리에선 1500ms , HTML Table 변경과정 2000ms정도가 나왔었다. 전에 어디선가 본적이 있던 터라 String Buffer를 사용했었는데 속도가 무려 20ms 를 밑도는 성능이 나왔다. 그래서 테스트 프로젝트를 생성하여 테스트를 진행했다.
   코드는 단순하게 String에 += 연산자로 다른 문자열을 적재하는 방법으로 2만번을 반복시켰다. 바로 아래에는 StringBuffer를 사용하여 같은 내용으로 테스트를 진행하였다. 결과는 어떨까?

 
 보는 바와같이 엄청난 속도의 차이가 있다. 거의 100배의 가까운속도가 차이가 난다.
 그렇다면 왜 이런 차이가 날까? 그 답은 아래 링크에 자세히 적혀있다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다