在C / C ++应用程序中检测虚假共享的工具

是否有任何工具可以检测和报告使用C或C ++编写的应用程序的错误共享 ?

尝试警长和捕食者。 警长在https://github.com/plasma-umass/sheriff ,而Predator在https://github.com/plasma-umass/Predator 。 Predator是一种基于编译器的方法,您必须使用新的LLVM编译器重新编译程序。 它是迄今为止最详尽的检测工具。 Sheriff是库,但如果你使用pthreads库,它只能检测错误的共享。

尝试valgrind的DRD (数据竞争检测)模块。

从手册看起来它可以用于检测虚假共享。

Perf(“Linux性能计数器”)

命令:

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