如果我告诉你我为什么问这个问题会更容易 - 以防我没有问正确的问题。内联函数时,您有时会使代码太大,从而导致 TLB 未命中。我也相信如果您过多地使用内联代码,您最终会得到的不是 L1 数据,而是 L1 指令缓存未命中。
如何确定编译后的汇编/机器代码有多大?可以测量吗?
最佳答案
大多数编译器将生成带有正确咒语的汇编语言输出(例如,-Fa 用于 VC++,-S 用于大多数其他)。
VC++ 还可以生成一个映射文件,通常更容易从中分类——它是由链接器生成的,因此它包括链接时优化之类的内容,并告诉您符号的地址。由于这是符号在可执行文件中的布局方式,因此连续地址之间的差异将告诉您每个地址的大小(填充后)。
关于c++ - 查看C++编译后生成的指令大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15509631/