インラインアセンブリは64ビットコードのVC++2010でサポートされていないためpause
、コードにx86-64命令を取り込むにはどうすればよいですか?__rdtsc()
他の多くの一般的な組み立て手順(たとえば、、、など)のように、これに固有のものはないよう__cpuid()
です。
理由としては、ビジーウェイトのユースケースに役立つ命令が必要です。これにより、(ハイパースレッドの)CPUを、そのCPUで実行されている他のスレッドで使用できるようになります( intel.comのPerformance Insightsを参照)。このpause
命令は、このユースケースとスピンロックの実装に非常に役立ちます。MSがそれを組み込みとして含めなかった理由を理解できません。
ありがとう