Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
正しい質問をしていない場合に備えて、なぜ私がこれを質問しているのかを説明すると簡単です。関数をインライン化すると、コードが大きくなりすぎて、TLB ミスが発生することがあります。また、インライン コードを使いすぎると、L1 データではなく、L1 命令キャッシュ ミスが発生することになると思います。
コンパイル後のアセンブリ/マシン コードの大きさをどのように判断できますか? それを測定することは可能ですか?
ほとんどのコンパイラは、適切な呪文 (VC++ の場合は -Fa、その他のほとんどの場合は -S など) を使用してアセンブリ言語の出力を生成します。
VC++ は、マップ ファイルを生成することもできます。これは、多くの場合、並べ替えが容易です。これはリンカーによって生成されるため、リンク時の最適化などを含み、シンボルのアドレスを示します。シンボルが実行可能ファイルに配置される方法であるため、連続するアドレスの違いにより、それぞれのサイズがわかります (パディング後)。