/*******************************************************************
* 문자열이 있는지 검사할 때 흔히 if (문자열개체 != "")나
* if (문자열개체 != Stirng.Empty)를 쓰는데 이럴 경우 불필요한 오버헤드가 생기지만,
* Length 속성은 개체가 생성될때 설정되므로
* if (문자열개체.Length != 0 )로 해서 값만 비교해서 보다 빠르게 검사할 수 있습니다.
* ******************************************************************/
using System;
namespace StringEmptyVSStringLength
{
/// <summary>
/// Class1에 대한 요약 설명입니다.
/// </summary>
class Class1
{
/// <summary>
/// 해당 응용 프로그램의 주 진입점입니다.
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 여기에 응용 프로그램을 시작하는 코드를 추가합니다.
//
string notEmptyString = "값이 있는 문자열";
// IL_000c: call bool [mscorlib]System.String::op_Inequality(string, string)
if (notEmptyString != String.Empty)
{
}
//IL_0014: callvirt instance int32 [mscorlib]System.String::get_Length()
if (notEmptyString.Length != 0)
{
}
}
}
}
IL 코드로는 1가지 명령어지만
"if (notEmptyString != String.Empty)"에서는 12가지 내부 개체의 메서드를 사용해 비교하려는 양쪽의 문자열을 정렬하고 서로 일일히 비교하지만,
i"f (notEmptyString.Length != 0)"에서는 단순이 변수에 값이 0이냐만 비교하기 때문에 속도가 빠를수 밖에 없죠.
실행해 시간을 검사하면 아래와 같은 차이를 보입니다. 단위는 (Microseconds)
742.4 if (notEmptyString != String.Empty)
0.7 if (notEmptyString.Length != 0)
- 출처 : KNUG (한국 닷넷 사용자 모임; Korea .NET User Group)
2005/07/11
값 없는 문자열은 Length로 검사로 속도향상
가장 많이 본 글
-
구글... 도대체 뭐하는 짓인지......?? 뭐 내용상으로는,. 누군가 Spam 이라며 신고했다는 건데, 스팸 사이트도 아니고 그럴 내용도 없다. 누군가 악의적으로 신고한것인지 ? 아니면 구글 시스템 오류인건지? 특이한건,. 같은 구글 계정으로 생성...
-
" HTTP 500 웹 서버 사용량이 너무 많습니다." 와 관련된 내용입니다. 이미 등록된 " IIS튜닝 - 응용프로그램 대기열 조정 " 에서 다루었던 내용인데요.. 다음 문서를 참고하시면 됩니다. http://...
-
Gmail 주소에 메일 전송시, 아래와 같은 리턴이 있다면, 전송 메일 주소의 SPF 설정/작동 점검을 일단 해볼 필요가 있음. 여러 가능성중에 하나. Reporting-MTA: dns; googlemail.com Received-From-MTA: d...
댓글 없음:
댓글 쓰기