0

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

编译后如何确定他们编译的程序集/机器代码有多大?可以测量吗?

4

1 回答 1

1

大多数编译器会生成带有正确指令的汇编语言输出(例如,-Fa 用于 VC++,-S 用于大多数其他)。

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

于 2013-03-19T20:32:44.313 回答