본문 바로가기
프로그래밍 놀이터/디자인 패턴, 리펙토링

[Effective Java] 문자열 결합의 성능 저하를 주의하자.

by 돼지왕 왕돼지 2017. 2. 7.
반응형

 [Effective Java] 문자열 결합의 성능 저하를 주의하자.


+, Effective JAVA, immutable, N, string, StringBuilder, [Effective Java] 문자열 결합의 성능 저하를 주의하자., 기본 크기, 단점, 문자 타입 저장, 문자열 결합, 반복, 배열, 불변, 성능, 성능 저하, 시간 소요, 저하, 주의, 크기 조정, 편리


-
문자열 결합 연산자(+)는 편리하지만 크기 조정이 안 된다는 단점이 있다.
문자열 결합 연산자를 n개의 문자열에 반복적으로 사용하면 n의 제곱에 비례하는 시간이 소요된다.
String 이 불변(immutable)이기 때문이다.


-
원하는 성능을 얻으려면 String 대신 StringBuilder 를 사용하자.


-
StringBuilder 를 결과를 충분히 저장할 만큼의 크기로 만들면 성능에 더 유리하다.
미리 산정된 만큼의 크기로 StringBuilder 를 생성하지 않고, 기본 크기로 생성해도 + 형태보다 여전히 50배 이상 빠르다.


-
StringBuilder 를 사용하기 싫다면 문자 타입을 저장하는 배열을 사용하거나, 문자열을 결합하지 말고 한번에 하나씩 처리해야 한다.
가장 좋은건 역시 StringBuilder 이다.





반응형

댓글