반응형
[Effective Java] 문자열 결합의 성능 저하를 주의하자. |
-
문자열 결합 연산자(+)는 편리하지만 크기 조정이 안 된다는 단점이 있다.
문자열 결합 연산자를 n개의 문자열에 반복적으로 사용하면 n의 제곱에 비례하는 시간이 소요된다.
String 이 불변(immutable)이기 때문이다.
-
원하는 성능을 얻으려면 String 대신 StringBuilder 를 사용하자.
-
StringBuilder 를 결과를 충분히 저장할 만큼의 크기로 만들면 성능에 더 유리하다.
미리 산정된 만큼의 크기로 StringBuilder 를 생성하지 않고, 기본 크기로 생성해도 + 형태보다 여전히 50배 이상 빠르다.
-
StringBuilder 를 사용하기 싫다면 문자 타입을 저장하는 배열을 사용하거나, 문자열을 결합하지 말고 한번에 하나씩 처리해야 한다.
가장 좋은건 역시 StringBuilder 이다.
반응형
'프로그래밍 놀이터 > 디자인 패턴, 리펙토링' 카테고리의 다른 글
[Effecitve Java] 리플렉션보다는 인터페이스를 사용하자. (0) | 2017.02.13 |
---|---|
[Effective Java] 객체 참조는 그 객체의 인터페이스 타입으로 하자 (0) | 2017.02.09 |
[Effective Java] 다른 타입을 쓸 수 있는 곳에서는 String 사용을 피하자. (0) | 2017.02.06 |
[Effective Java] 박스화 기본형보다는 기본형을 사용하자. (0) | 2017.02.02 |
[Effective Java] 정확한 계산에는 float 이나 double 타입을 쓰지 말자. (0) | 2017.01.31 |
댓글