위즈군의 라이프로그
Reboot... Search /

[.NET&C#] .NET string 성능테스트 2

2005.08.05 19:33
1. .NET string 성능테스트 1

2. .NET string 성능테스트 2 변수 선언 위치에 따른 속도 차이와 "()"를 이용한 경우의 속도 차이를 테스트 했습니다. 우선 테스트에 사용한 코드를 보면 아래와 같습니다. 문자열 합치기

테스트 소스 1-1
string a1tmp = "";
for(int tmpi=0;tmpi<t1 ;tmpi++)
{
     a1tmp = "http://" + "wiz.pe.kr/";
}
코드 2-1
string a4tmp = "";
for(int tmpi=0;tmpi<t1 ;tmpi++)
{
     a4tmp = ("http://" + "wiz.pe.kr/");
}
코드 1-2
for(int tmpi=0;tmpi<t1 ;tmpi++)
{
     string a2tmp = "";
     a2tmp = "http://" + "wiz.pe.kr/";
}
코드 2-2
for(int tmpi=0;tmpi<t1 ;tmpi++)
{
     string a5tmp = "";
     a5tmp = ("http://" + "wiz.pe.kr/");
}
코드 1-3
for(int tmpi=0;tmpi<t1 ;tmpi++)
{
     string a3tmp = "http://" + "wiz.pe.kr/";
}
코드 2-3
for(int tmpi=0;tmpi<t1 ;tmpi++)
{
     string a6tmp = ("http://" + "wiz.pe.kr/");
}
코드 1-1,2,3 는 "()" 를 사용하지 않고 문자열을 더하고, 2-1,2,3 은 문자열을 합치는 경우 "()"를 이용했습니다. MS에서 봤던 자료에 의하면 "()"를 이용해서 문자열을 결합 할 경우 성능향상에 도움이 된다고 합니다.
코드 1-1,2-1은 for 문 밖에서 한번의 변수 선언 후 for 문 내부에서 재 사용을 한 경우 입니다.
코드 1-2,3과 2-2,3은 for문 내부에서 반복될 때마다 재 선언 되어 사용되는 경우입니다.
1-2,2-2 의 경우는 선언 시 기본 값으로 ""를 할당한 경우, 1-3,2-3의 경우는 선언 시 값을 할당 한 경우 입니다. 각각을 1,000,000번 반복한 결과 입니다.
사용자 삽입 이미지
 
결론 긴 문자열을 많이 다룰 경우 System.Text.StringBuilder 를 사용할 것
 - 단순한 변수의 결합할 때 "()"를 이용해 ("wiz" + "pe" + "kr") 와 같은 형식으로 사용할 것
 - 변수는 가급적 재사용할 것. (무작정 변수 하나를 만들어 놓고, 다시 만들어 사용하지 않는 것이 좋을 것 같다.)
 - 변수에 값을 불필요하게 반복 입력을 피한다.

결과를 보면 속도의 차이가 많이 나는 것은 아니지만, 항상 조금 이라도 속도를 높이기 위해 노력 하는 프로그래머로서 속도 향상에 도움이 되었으면 합니다.
추가적인 도움될 내용이 있다면 코멘트 남겨주세요..^^
신고
위즈군의 라이프로그

Category

전체 (569)
개발 (0)
정보 (0)
일상 (0)
정리중 (569)
Total:2,094,343
Today:108 / Yesterday:433
Daum 코드
Powered by Tistory / Skin by 위즈 / Copyright Click Here 라이센스정책 rss 2.0