나는 SO에이 게시물을 읽고 있었다 :는 C 사이의 성능 질문 ++ 및 C#에 대한 답변입니다STL/표준 C++ 컨테이너는 얼마나 효율적으로 효율적입니까?
https://stackoverflow.com/a/3183607/997112
합니다. 이 포스터는 고주파 거래 배경에서 나온 것으로, 나노초 절약에 대한 검색으로 인해 HF 작업을위한 클래스 라이브러리를 작성했다고합니다. 그의 게시물에서 그는 C++ STL을 거의 사용하지 않는다고 언급하면서 나를 놀라게했습니다.
제 질문은 C++ STL이 성능과 관련하여 완전히 최적화 되었습니까? 아니면 평균적인 사용자에 대해서만 최적화 되었습니까? C에서 네이티브 배열 주위에 몇 가지 함수를 래핑하는 것이 Vector 나 List보다 빠르다. boost 내에서 성능이 좋은 컨테이너가 있습니까?
이 수업은 99 %의 사용자에게는 충분히 빠르지 만 제 질문은 다른 1 % 내에서의 사용을 목표로합니다.
모든 소프트웨어가 "최적으로 효율적"이라고 말할 수 있는지 의심 스럽습니다. 일반적으로 1 %에 적합한 데이터 별 최적화가 있으며 어셈블리 언어와 프로세서 별 최적화가 있습니다. C++은 매 클럭 사이클 후에 쫓는 것이 아닙니다. –
그것을 측정하십시오. 하나의 큰 문제는 문제와 가능한 최적화가 1 % 범주에 속하는 한 사람이 1 % 필요에있는 다른 사람과 완전히 다를 수 있으며 한 가지 문제에 대해 완전히 최적화 된 코드가 다른 사람과 충돌 할 수 있다는 것입니다 최악의 시나리오 100 % "상상할 수있는 모든 유스 케이스에 완벽하게 최적화 된"것은 존재하지 않습니다. – nos
특정 1 % 사용 사례 시나리오에 대한 대부분의 최적화는 일반적인 사용 사례를 상당히 악화시킵니다. 성능이 좋지 않은 코드에 대해 더 많은 코드가 실행되기 때문에 명령 캐시 스 래싱 이외의 다른 이유로 인해 작업을 수행하고 실제로 성능에 중요한 다른 코드를 느리게 만듭니다. –