2012/11/30

C++ 문자열 비교 속도 테스트


string strSrc = "Test string...";

strSrc.compare("Test strinG...")  vs _stricmp( strSrc.c_str(), "Test strinG...")




문자열 비교 테스트를 하는데 위 코드가 월등하게 빠를것으로 예상하고 테스트 했는데 아래 코드가 더 빠르다.

아래쪽은 대소문자를 무시하는 비교라 연산이 더 들어가는데 어떻게 더 빠른건가 했더니... Debug 모드이다.

Release 모드에서는 위쪽 코드를 백만번 수행해도 시간측정이 되지 않는다.(예상대로 훨씬 빨랐다.)

STL 코드에 디버그 코드가 상대적으로 많이 포함되어 있는 듯 하다.




추가로 아래의 대소문자를 구분한 코드도 비교해 보았다.

strcmp( strSrc.c_str(), "Test strinG...")




결과는 위 코드는 string의 compare 함수와 크게 차이가 나지 않았다.




보다 나은 성능을 고려할때에는 문자열 비교 할 때 대 소문자를 구분 하거나 미리 대문자든 소문자든 바꾸어 놓은 후 비교를 해야겠다.

No comments :

Post a Comment