数日前の Facebook での講演 -スライド、ビデオで、Andrei Alexandrescu は、私たちが間違っていることを証明するかもしれない共通の直感について語っています。私にとって非常に興味深い点がスライド 7 で出てきました。彼は、 「命令が少ない = コードが速くなる」という仮定は正しくなく、命令が多いからといって必ずしもコードが遅くなるとは限らないと述べています。
ここに私の問題があります: 彼の講演 (約 6:20 分) の音質はそれほど良くなく、説明がよくわかりませんが、私が得たのは、彼が廃止された命令とアルゴリズムの最適性を比較していることです。パフォーマンスレベル。
しかし、私の理解では、これらは 2 つの独立した構造レベルであるため、これを行うことはできません。指示 (特に実際に廃止された指示) は 1 つの非常に重要な尺度であり、基本的に、目標を達成するためのパフォーマンスについてのアイデアを提供します。命令のレイテンシを除外すると、廃止された命令が少ないほどコードが高速になると一般化できます。もちろん、ループ内で複雑な計算を実行するアルゴリズムは、ループ内で実行されてもパフォーマンスが向上する場合があります。これは、ループを早期に中断するためです (グラフ トラバーサルを考えてください)。しかし、このループが他のループよりも多くの命令を持ち、優れていると言うよりも、複雑さのレベルでアルゴリズムと比較する方が有益ではないでしょうか? 私の視点から、
誰かが彼の例で彼がどこに向かっていたのかを理解するのを手伝ってもらえますか? また、(大幅に) 廃止された命令がパフォーマンスの向上につながる場合はどうすればよいでしょうか?