Như tiêu đề nói: Làm thế nào để bạn kiểm tra đúng cách và đánh giá các triển khai khác nhau của mutexes trong c ++?
Về cơ bản, tôi đã viết std :: mutex like class của riêng mình cho một dự án chạy trên lõi 2, armv7 với mục đích giảm thiểu chi phí trong trường hợp không kiểm chứng. Bây giờ tôi đang xem xét sử dụng mutex đã nói ở nhiều nơi hơn và cả các kiến trúc khác nhau, nhưng trước khi tôi làm điều này tôi muốn chắc chắn rằng
- nó thực sự đúng
- không có trường hợp bệnh lý nào trong đó nó thực hiện tồi tệ hơn nhiều so với tiêu chuẩn std :: mutex.
Rõ ràng, tôi đã viết một vài bài kiểm tra đơn vị cơ bản và điểm chuẩn vi mô và mọi thứ dường như hoạt động, nhưng trong mã đa luồng "dường như hoạt động" không mang lại cho tôi sự thoải mái tuyệt vời.
- Vì vậy, có bất kỳ kỹ thuật phân tích tĩnh hoặc động được thiết lập?
- Những cạm bẫy phổ biến khi viết bài kiểm tra đơn vị cho các lớp mutex là gì?
- Các trường hợp cạnh điển hình người ta nên tìm kiếm (hiệu suất-khôn ngoan) là gì?
Tôi chỉ sử dụng các loại thư viện tiêu chuẩn để triển khai, bao gồm các hoạt động lưu trữ & tải không nhất quán liên tục trên các nguyên tử. Tuy nhiên, tôi chủ yếu quan tâm đến lời khuyên bất khả tri, vì tôi cũng muốn sử dụng cùng một khai thác thử nghiệm cho các triển khai khác.