我想找到Android应用程序的机器指令总数。我已经探索了Android SDK的debug.sinstructioncount类,但我相信它提供了Dalvik VM指令的信息(不是实际上在处理器上执行的机器级指令)。我需要此信息来估计在特定处理器上执行Android应用所需的时间(使用固定频率)。我知道,不同类型的指令进行可变周期,因此无法准确估算计算时间,但我仍然想进行一些实验。谢谢
我的解决方案涉及编写指令集模拟器,运行应用程序并计数指令。那里已经有开源AVR模拟器,而不是您可以使用/修改。
在一天结束时,要执行此操作,您必须遵循指令流,因此您实际上要对其进行模拟,然后自动求解代码真正通过循环等等的次数,或者您编写一个拆卸器(这是模拟器的一半),并基本上遵循执行顺序中的代码流(实际上比完整的拆卸器或模拟器简单得多),但是当您找到不同的路径并计数时,您必须处理所有可能的代码路径和循环不同的路径。通过最少的工作,您可能会提出最短的路径,并且知道代码永远不会比这更快。