2011-08-16 11 views
8

CまたはC++で書かれたアプリケーションの場合はFalse Sharingを検出し報告するツールはありますか?C/C++アプリケーションでの誤った共有を検出するツール

+0

直接共有_false_表示されていないが、インテルのvtunesは、少なくとも特定のCPU上で共有を検出することができますが、それはお金がかかるし、難しいです結果を解釈する。 – PlasmaHH

+0

インテル製品には、個人使用ライセンスがあります。 – JohnTortugo

答えて

2

SheriffとPredatorを試してください。 シェリフはhttps://github.com/plasma-umass/sheriff、プレデターはhttps://github.com/plasma-umass/Predatorです。 Predatorはコンパイラベースの手法で、新しいLLVMコンパイラを使用してプログラムを再コンパイルする必要があります。それは今までの中で最も網羅的な検出ツールです。 Sheriffはライブラリですが、pthreadsライブラリを使用している場合にのみ誤った共有を検出することができます。

4

valgrindのDRD(データ競合検出)モジュールを試してください。

マニュアルからは、誤った共有を検出するために使用できるようです。

+3

残念ながら、DRDは、最も単純な誤った共有の場合でも、何も検出しません。http://en.wikipedia.org/wiki/False_sharing – gui11aume

+2

に記載されているように、実際には、DRDが誤った共有を検出する –

0

パフォーマンス・(「Linux用のパフォーマンスカウンタ」)

コマンド:

sudo perf record -e cache-misses,anything_else_you_want ./your_program 
sudo perf report 
関連する問題