string concatenation에 대한 비교.
예전에도 해봤던 거 같은데, 그때는 기록을 안남긴 거 같아서 다음과 같은 루틴으로 비교해 보았다.
const int iTestCount = 2000000;
const int iConcatCount = 5;
using (new CDisposableTrace("string"))
{
for (int j = 0; j < iTestCount; j++)
{
string s = string.Empty;
for (int i = 0; i < iConcatCount; i++)
{
s = s + i.ToString();
}
}
}
using (new CDisposableTrace("StringBuilder"))
{
for (int j = 0; j < iTestCount; j++)
{
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < iConcatCount; i++)
{
stringBuilder.Append(i.ToString());
}
string s = stringBuilder.ToString();
}
}iConcatCount가 5 이하일 경우 string이 빠르다.iConcatCount가 6 이상일 경우 StringBuilder가 빠르다.StringBuilder를 생성할 때 Capacity를 지정해 주는 것은 필수.-- 2010-07-29
Similar pages by cosine similarity. Words after page name are term frequency.