【发布时间】:2015-06-26 13:01:54
【问题描述】:
我编写并交叉编译了一个小型 c++ 程序,我可以在 ARM 或 PC 上运行它。由于 ARM 和 PC 具有不同的指令集架构,我想比较它们。我是否有可能获得两个 ISA 在此 c++ 程序中执行的指令数?
【问题讨论】:
-
通常,您可以反汇编(
objdump使用 GNU binutils 工具)或使用类似size的程序。答案取决于编译器、编译器版本、命令行参数、输出格式等。 -
您会发现相同的代码相同的目标相同的编译器会根据优化和调试以及其他编译器选项产生不同的结果,然后随着您更改编译器的版本(相同的代码相同的目标)甚至更多变化,然后当您更改目标时,它会再次变化。基本上,如果两个目标的相同源代码需要指令,您最终应该会得到数百个不同的数字。
-
您的意思是 a) 指令中程序的大小,还是 b) 程序运行时执行的指令数?例如,一个小循环可能有一个小 (a) 和一个大 (b)。
-
@MikeDunlavey 其实我的意思是 b),指令的数量:D
-
那么你想要@VAndrei 的答案
标签: c++ x86 arm profiling instruction-set