0

正しい質問をしていない場合に備えて、なぜ私がこれを質問しているのかを説明すると簡単です。関数をインライン化すると、コードが大きくなりすぎて、TLB ミスが発生することがあります。また、インライン コードを使いすぎると、L1 データではなく、L1 命令キャッシュ ミスが発生することになると思います。

コンパイル後のアセンブリ/マシン コードの大きさをどのように判断できますか? それを測定することは可能ですか?

4

1 に答える 1

1

ほとんどのコンパイラは、適切な呪文 (VC++ の場合は -Fa、その他のほとんどの場合は -S など) を使用してアセンブリ言語の出力を生成します。

VC++ は、マップ ファイルを生成することもできます。これは、多くの場合、並べ替えが容易です。これはリンカーによって生成されるため、リンク時の最適化などを含み、シンボルのアドレスを示します。シンボルが実行可能ファイルに配置される方法であるため、連続するアドレスの違いにより、それぞれのサイズがわかります (パディング後)。

于 2013-03-19T20:32:44.313 に答える