제목에서 알 수 있듯이 C ++에서 뮤텍스의 다양한 구현을 어떻게 올바르게 테스트하고 벤치마킹합니까?
본질적으로 나는 2 코어, armv7에서 실행되는 프로젝트에 대해 내 자신의 std :: mutex와 같은 클래스를 작성했습니다. 이제는 더 많은 장소와 다른 아키텍처에서 뮤텍스를 사용하는 것을 고려하고 있지만이를 수행하기 전에
- 실제로 맞습니다
- 표준 std :: mutex보다 훨씬 나쁘게 수행되는 병리학 적 사례는 없습니다.
분명히, 나는 몇 가지 기본 단위 테스트와 마이크로 벤치 마크를 작성했으며 모든 것이 작동하는 것처럼 보이지만 멀티 스레드 코드에서 "작동하는 것처럼 보임"은 큰 위안을주지 않습니다.
- 정적 또는 동적 분석 기술이 확립되어 있습니까?
- 뮤텍스 클래스에 대한 단위 테스트를 작성할 때의 일반적인 함정은 무엇입니까?
- 성능 측면에서 살펴 봐야 할 일반적인 경우는 무엇입니까?
원자에 대한 비 순차 일관된로드 및 저장 작업을 포함하여 구현에 표준 라이브러리 유형 만 사용하고 있습니다. 그러나 다른 구현에도 동일한 테스트 하네스를 사용하고 싶기 때문에 구현에 독립적 인 조언에 주로 관심이 있습니다.