用于检测C / C ++应用程序中的错误共享的工具

时间:2011-08-16 14:36:47

标签: c++ c false-sharing

是否有任何工具可以检测并报告用C或C ++编写的应用程序的False Sharing

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

Perf(“适用于Linux的性能计数器”)

命令:

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