查看编译C ++后生成的指令的大小?

时间:2013-03-19 20:21:15

标签: c++ c caching assembly cpu

如果我告诉你为什么我这么问,我会更容易 - 如果我不问正确的问题。内联函数时,有时会使代码过大,从而导致TLB未命中。我也相信你最终会得不到L1数据,但如果过多地使用内联代码,则L1指令缓存会丢失。

如何确定编译后的编译汇编/机器代码的大小?是否可以测量它?

1 个答案:

答案 0 :(得分:1)

大多数编译器都会使用正确的咒语生成汇编语言输出(例如,对于VC ++为-Fa,对于大多数其他编译器为-S)。

VC ++还可以生成一个映射文件,它通常更容易排序 - 它是由链接器生成的,所以它包含链接时优化之类的东西,并告诉你符号的地址。由于这是符号在可执行文件中的布局方式,因此连续地址之间的差异将以每个的大小(填充后)来确定。