1

リアルタイム パフォーマンスを扱う人々と話すときはいつでも、生成された X86 アセンブリ命令はそれほど効率的ではないと指摘する傾向があります。

VMX のような機能が実現しつつある中で、商用の C++ コンパイラがこれらの命令セットを利用する可能性はどれくらいあるのでしょうか? コンパイラ ベンダーは、特別な凝ったアセンブリを公開したり、コンパイラを最新の状態に保つことに重点を置いたりしていないように感じます。

さらに言えば、そもそも何が適切な X86 アセンブリを構成するのでしょうか?

4

2 に答える 2

2

あなたが話している人は、パフォーマンスの狂人に違いありません。最新のコンパイラのほとんどは、分岐予測テーブルとパイプライン ストール テーブル、および多数の最適化手法を利用する非常に効率的なコードを生成します。彼らは一般的に、最も賢いプログラマー以外の誰よりも優れたコードを発行します。変わった例外もあります。そのため、__asm と組み込み関数をスタンバイにしておくと便利ですが、これらが必要 (かつ役立つ) と証明される状況は最近ではほとんどありません。

于 2010-09-09T12:02:26.293 に答える
1

「適切なアセンブリ」とは、コンパイルされたプログラムがリソースを最適に利用することを意味します。「コードを明確に記述し、コンパイラーに最適化を任せる」という知恵があります。この知恵を真に保持するために、コンパイラは非常に高速なコードを生成するために多大な努力を払っています。

私の経験からすると、Visual C++ は見た目が複雑な C++ 構造に対して驚くほど簡潔なコードを生成することが多いため、コンパイラ ベンダーがコード エミソンを気にしないという考えは、それほど真実ではありません。

于 2010-09-09T11:58:19.210 に答える