/*******************************************************************
* 문자열이 있는지 검사할 때 흔히 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 이라며 신고했다는 건데, 스팸 사이트도 아니고 그럴 내용도 없다. 누군가 악의적으로 신고한것인지 ? 아니면 구글 시스템 오류인건지? 특이한건,. 같은 구글 계정으로 생성...
-
업데이트 적용 환경 : Windows Server 2022 Std, 21H2 설치 실패: 0x8024200B 오류 때문에 Windows에서 다음 업데이트를 설치하지 못했습니다. 2024-01 x64 기반 시스템용 Microsoft server oper...
-
PostgreSQL 에서 처음 dblink 를 사용하는 경우에는 dblink 라이브러리를 확장모듈에 로딩을 해놔야 함. 안그러면 알수 없는 함수라는 오류가 표시됨. -- dblink 로딩 (최초1회 > PgAdmin 에서 해당 DB의 확장모듈에...
댓글 없음:
댓글 쓰기