質問

私は前にSSEをコードするいくつかのインラインASMをやったし、それがのあまりにのハードでもASMを知らない人のためではなかったです。しかし、私はMSも多く、このような特別な指示を包む組み込み関数を提供注意します。

特定の性能差があり、または一方が他方の上に使用しなければならない理由は、他の強い理由は?

はタイトルから繰り返すには、これを具体的に管理されていない、ネイティブC ++のためのVC ++ 2008によって公開された組み込み関数をカバーされます。

役に立ちましたか?

解決

マイクロソフトのコンパイラは、この点では良いようではないなど、プログラマと良いコンパイラ(例えばインテルICC)はレジスタ割り当てのまともな仕事をするために、それはより生産的だ、命令スケジューリングが、 -

一般的に、より良い使用組み込み関数のですそれはおそらくまだ合理的な仕事をしていません - 。あなたはより良いパフォーマンスを得るために必要がある場合は、必ず後でICCに切り替えることができます。

他のヒント

何のインラインは、x64用のVisual C ++でアセンブリがありません。組み込み関数は、同様にx64の上で使用することができます。あなたがこれまでのx64への移植があなたのコードをしたい場合は、組み込み関数を使用する必要があります。

組み込み関数は、それらと同等のアセンブリ命令と同一であり、可能な場合には、それらを使用する必要があります - コンパイラがそれらを直接変換するために知っている、パフォーマンス上の違いはありません。

を使用する組み込み関数。

通常、ノンストップの仕事の数日間になりますアセンブリ使用して、 コンパイラを見つけるための唯一の5%で、あなたの最高のパフォーマンスを打ちます。 (あなたが本当に良いなら5%;最も可能性の高い30%)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top