string
C#에서의 string은 읽기 전용으로 만들어져 있어, string 연산을 처리할 때 객체를 복사한 후 대입해 주는 방식으로 처리되기 때문에 가비지를 생성한다.
때문에 수정이 많이 일어나는 문자열로 예상이 된다면 StringBuilder등의 클래스를 사용하는게 좋다.
StringBuilder
- StringBuilder는 기본적으로 16문자를 담을 수 있는 자리를 잡아, 이렇게 할당 된 크기 내에서는 어떠한 수정을 해도 가비지가 생성되지 않는다.
- 미리 할당한 버퍼가 다 찬 상태에서 append를 하게 되면 새 버퍼를 할당한 뒤 버퍼간 링크를 구성한다.