2005/07/11

문자열 비교에 "=="과 "Equals" 속도 비교

 * 문자열 검사를 할 때 ==과 Equals메서드 중 누가 더 빠를까요?..

 * 저번에 본 봐와 같이 ==(IL : op_Equality)에는 12개의 메서드가 사용되지만

 * Equals 매서드는 2 가지만 사용되더군요.

 * 따라서 문자열 비교할 때는 Equals메서드를 사용해 비교하세요.

 

using System;

 

namespace EqualsVs__

{

    /// <summary>

    /// Class1에 대한 요약 설명입니다.

    /// </summary>

    class Class1

    {

        /// <summary>

        /// 해당 응용 프로그램의 주 진입점입니다.

        /// </summary>

        [STAThread]

        static void Main(string[] args)

        {

            string strCompared = "문자열";

 

            //IL_000c:  call       bool [mscorlib]System.String::op_Equality(string, string)

            //사용 메서드 수 : 12개

            //시간 : 7453.4 

            if (strCompared == "문자열")

                Console.WriteLine("True");

 

            // IL_0023:  callvirt   instance bool [mscorlib]System.String::Equals(string)

            //사용 메서드 수 : 2개

            //시간 : 37.9

            if (strCompared.Equals("문자열"))

                Console.WriteLine("True");

        }

    }

}

 

덧붙여서.. int,double... 의 실수와 연관있는형은 ==가 훨빠릅니다. 단 스트링비교는 반드시 equal 로 하시는 습관을 들이십시요. 얼마안된다 안된다 생각하실수도 있겠지만.. 저거 하나가 여러게 모이면 확연히 표가 납니다...

- 출처 :  KNUG (한국 닷넷 사용자 모임; Korea .NET User Group)
http://www.devpia.com/Forum/BoardView.aspx?no=46109&ref=46109&forumname=CSHARP_QA


댓글 없음:

댓글 쓰기

가장 많이 본 글