Başlığın dediği gibi: c ++ 'daki mutekslerin farklı uygulamalarını düzgün bir şekilde nasıl test edersiniz ve karşılaştırırsınız?
Esasen, 2 çekirdekli bir armv7 üzerinde çalışan bir proje için kendi std :: mutex benzeri sınıfımı yazdım, tartışmasız durumda ek yükü en aza indirgemek için. Şimdi söz konusu muteksi daha fazla yerde ve farklı mimarilerde kullanmayı düşünüyorum, ama bunu yapmadan önce emin olmak istiyorum
- aslında doğru
- standart std :: muteks'ten çok daha kötü performans gösterdiği patolojik durumlar yoktur.
Açıkçası, birkaç temel birim testi ve mikro-ölçüt yazdım ve her şey işe yarıyor gibi görünüyor, ancak çok iş parçacıklı kodda "işe yarıyor" bana büyük rahatlık vermiyor.
- Öyleyse, yerleşik statik veya dinamik analiz teknikleri var mı?
- Muteks sınıfları için birim testleri yazarken sık karşılaşılan tuzaklar nelerdir?
- Kişinin dikkat etmesi gereken tipik uç durumlar nelerdir (performans açısından)?
Ben sadece atomlar üzerinde sıralı tutarlı olmayan yük ve mağaza işlemleri içeren uygulama için standart kütüphane türleri kullanıyorum. Bununla birlikte, aynı uygulama donanımını diğer uygulamalar için de kullanmak istediğimden, esas olarak uygulama agnostik tavsiyesiyle ilgileniyorum.