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 함수와 크게 차이가 나지 않았다.




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

2012/11/15

Visual Studio 2010 "IntelliSense: #error directive:..." 에러

Visual Studio 2010 버전을 이용하여 프로젝트를 만들고 빌드하다보면 아래 같은 에러 메시지를 만나는 경우가 있다.


IntelliSense: #error directive: Please use the /MD switch for _AFXDLL builds


프로젝트 속성에 /MD로 되어 있는데도 불구하고 에러 메시지가 나오는데 이는 VS2010의 버그로 알려졌다.


http://connect.microsoft.com/VisualStudio/feedback/details/549119/intellisense-error-on-build-solution


해결책은 해당 속성을 다시 한 번 선택하여 굵은 글씨로 되도록 하고 빌드하면 이 메시지가 사라진다.

<

Original Post : http://neodreamer-dev.tistory.com/688

2012/11/13

괜찮은 Gantt 차트 프로그램 - GanttChart



MS Project를 대신할 Gantt Chart 프로그램을 찾다가 발견한 프로그램이다.


다른 공개 프로그램들 여러개를 찾아 사용해 보았지만 차트 기능이 좋으면 인쇄기능이 떨어지고 자바로 작성된 프로그램이어서 인지 입력이 불편한 프로그램 도 있는데 이 프로그램은 차트 편집이나 인쇄기능이 쓸만하다.


단 한가지 단점이라고 할 수 있는 건 차트의 날짜 표기가 영어문화권 기준이라 한눈에 알아보기 불편하다.

다행이 소스도 공개되어 있어 리소스를 좀 편집하면 보기 편하게 수정할 수 있다.


GanttChar

Original Post :
http://neodreamer-dev.tistory.com/687

2012/11/05

OpenCV 2.4.3 is out

OpenCV 2.4.3 버전이 공개가 되었다. 병렬프로세싱과 모바일 플랫폼 지원에 개선이 있는 듯 하다.


2.4.3 버전에서 개선된 사항(OpenCV 2.4.3 release notice 중에서)


  • A lot of good stuff from the Google Summer of Code 2012 has been integrated;
    this was a very productive summer!


  • Significantly improved and optimized Android and iOS ports.


  • Greatly extended GPU (i.e. CUDA-based) module


  • The brand new ocl (OpenCL-based) module that unleashes GPU power also for AMD
    and Intel GPU users. It's not included into the binary package, since there are
    different SDKs, and it's not turned on by default. You need to run CMake and
    turn on "WITH_OPENCL". Also, please note that this is very first version of the
    module, so it may be not very stable and not very functional.


  • Much better performance on many-core systems out of the box. You do not need
    TBB anymore on MacOSX, iOS and Windows. BTW, the binary package for Windows is
    now built without TBB support. Libraries and DLLs for Visual Studio 2010 use the
    Concurrency framework.


  • About 130 bugs have been fixed since 2.4.2.

    -----


  • Since 2.4.3rc we fixed several more problems, in particular some compile
    problems with iOS 6 SDK.




OpenCV Change Logs

OpenCV 홈페이지

<

Original Post : http://neodreamer-dev.tistory.com/686