我想查找Android应用程序的机器指令总数。我已经探索了Android SDK的Debug.InstructionCount类,但我相信它提供了Dalvik VM指令的信息(而不是实际在处理器上执行的机器级指令)。 我需要此信息来估计在特定处理器上执行Android应用程序所需的时间(使用固定频率)。我知道不同类型的指令采用可变周期,因为无法准确估计计算时间,但我仍然想做一些实验。谢谢
答案 0 :(得分:1)
我的解决方案包括编写指令集模拟器,运行应用程序并计算指令。已经有开源avr模拟器了,你可以使用/修改它。
在一天结束时,为了做到这一点,你必须遵循指令流程,所以要么你实际上是SIM卡,要么自动解决代码真正通过循环等多少次,或者你写一个反汇编程序(这是模拟器的一半)并且基本上遵循执行顺序中的代码流(实际上比完整的反汇编程序或模拟器简单得多)但是当您找到不同的路径并计算时,您必须处理所有可能的代码路径和循环不同的路径。只需最少的工作,您就可以找到最短的路径,并且知道代码永远不会比这更快。