2011-10-14 2 views
1

가능한 중복 : 나는 그것을 알고있는 것처럼 당신이 "one " + "two"을 할 경우, 오히려이 두 문자열의 메모리를 재사용하는 것보다, 새로운 캐릭터가 생성되도록
Stringbuilder vs String.ConcatStringBuilder를 효율적으로 사용하려면 몇 개의 문자열 추가가 필요합니까?

은, 문자열, 불변 값은 "one two"입니다.

최종 원하는 출력을 생성하기 위해 19 (또는 39?) 문자열이 생성되고 무시되기 때문에 문제가됩니다.

문자열 빌더는 변경 가능하므로 문자열을 효율적으로 추가 한 다음 완료되면 문자열로 변환 할 수 있습니다.

문자열 작성기를 작성하는 데 약간의 오버 헤드가 있고, 현재 사용되는 영리한 컴파일러가 많은 문자열 추가 문제를 최적화한다고 가정합니다. 그래서 내 질문 : StringBuilder 대신 사용하는 것이 더 효율적되기 전에 얼마나 많은 문자열을 함께 추가해야합니까? 아니면 내 가정이 틀렸는가?

+0

이것은 마이크로 최적화 범주에 속합니다. 실제로 성능 문제가 있고 문자열 연결을 문제로 확인하면 걱정할 필요가 없습니다. – Oded

+2

몇 년 전에 이것을 (문자열 연결) 사용했습니다. 차이점은 1000 개의 문자열 조각으로 시작한다는 점을 기억하십시오. – VMykyt

+1

http://www.codinghorror.com/blog/2009/01/the-sad-tragedy-of-micro-optimization-theater.html –

답변

관련 문제