10
votes

Outils pour détecter un faux partage dans une application C / C ++

Y a-t-il des outils qui détectent et signalent faux partage pour les applications écrites en C ou C ++?


2 commentaires

Tout en ne pas montrer faux partage directement, Intel Vtunes peut au moins sur certains CPU de détecter le partage, mais cela coûte de l'argent et est difficile d'interpréter le résultat.


Les produits Intel ont une licence d'utilisation personnelle.


3 Réponses :


3
votes

Essayez le DRD (détection de la course de données) Module de Valgrind.

Dans le manuel, on dirait qu'il peut être utilisé pour détecter un faux partage.


2 commentaires

Malheureusement, DRD ne détecte rien, même dans les cas les plus simples de faux partage, tel que celui décrit sur en.wikipedia .org / wiki / faux_sharing


En fait, dans le manuel, il n'est pas affirmé que DRD est capable de détecter un faux partage



3
votes

Essayez le shérif et le prédateur. Shérif est à https://github.com/plasma-umass/sheriff , tandis que Predator est à https://github.com/plasma-umass/predator . Predator est une approche basée sur le compilateur que vous devez recompiler votre programme à l'aide d'un nouveau compilateur LLVM. C'est l'outil de détection la plus exhaustive jusqu'à présent. Le shérif est bibliothèque mais il ne peut détecter que le faux partage si vous utilisez la bibliothèque Pthreads.


0 commentaires

-1
votes

perf ("compteurs de performance pour Linux")

Commandes: P>

sudo perf record -e cache-misses,anything_else_you_want ./your_program 
sudo perf report 


0 commentaires