この質問に完全に答えることは不可能であることは承知していますが、大まかな数値を求めているだけです。
妥当なサイズの C プログラム (数千行のコード) が与えられた場合、平均して生成される ASM 命令の数。言い換えれば、現実的な C と ASM の命令比率はどれくらいでしょうか? 「現在の x86 アーキテクチャで」など、自由に仮定してください。
これについてGoogleで調べてみましたが、何も見つかりませんでした。
補遺: この質問がどれほどの混乱を招いたかに気づき、説明が必要だと感じました。ヘルツあたりのスループットが、アーキテクチャ、ハードウェア、キャッシュ、バス速度、および月の位置によって大きく異なることは十分承知しています。
私は正確で科学的な答えを求めているのではなく、むしろ、計り知れないスケールに入れることができる経験的な答えを求めています.
これは場所に対する簡単な答えではありません (私が気づいたように)、これは私の最善の努力でした。C の行ごとに結果として得られる ASM の行の量は、何をしているかによって異なることを私は知っています。i++
と同じ近隣にありませんsqrt(23.1)
- 私はこれを知っています。さらに、C から取得した ASM に関係なく、ASM はプロセッサ内のさまざまなマイクロコードのセットに解釈されます。これは、AMD、Intel、またはその他のものを実行しているかどうか、およびそれぞれの世代によって異なります。これも承知しております。
私がこれまでに得た大まかな答えは、私が求めていたものです。ANSI-C の 1 行あたり x86 ASM の平均で約 2 行の十分な規模のプロジェクトです。今日のプロセッサは、パイプラインがいっぱいになり、十分な大きさのサンプルが与えられると、平均してクロック サイクルあたり約 1 つの ASM コマンドになるでしょう。