문자열 비교에 "=="과 "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"); } } } |
출처 : http://www.devpia.com/