問題の背景
問題のコードは、C++ の実装に関連しています。特定の重要な実装のために使用するコードベースがありますasm volatile ("mfence":"memory")
。
メモリバリアに関する私の理解は -
- 命令セットの完全な/順序付けられた実行を保証するために使用されます。
- これは、従来のスレッド同期の問題を回避するのに役立ちます- Wiki リンク。
質問
pthread_mutext
スレッド同期の問題を回避するためにメモリフェンスを使用する場合、メモリバリアよりも高速ですか? pthread ミューテックスがメモリ同期を使用していることを示す内容を読みました。
PS :
このコードでは
asm volatile ("mfence":"memory")
、10 ~ 15 行の C++ コード (メンバー関数) の後に of を使用しています。したがって、私の疑問は-メモリ同期のミューテキスト実装により、ユーザーが実装したコード(MBの範囲)でMBよりも優れたパフォーマンスが得られる可能性があることです。クアッド コア プロセッサを搭載した SUSE Linux 10、2.6.16.46、smp#1、x64_86 を使用しています。