1

我想查找 Android 应用程序的机器指令总数。我已经探索了 Android SDK 的 Debug.InstructionCount 类,但我相信它提供了 Dalvik VM 指令的信息(不是实际在处理器上执行的机器级指令)。我需要此信息来估计在特定处理器(使用固定频率)上执行 Android 应用程序所需的时间。我知道不同类型的指令需要可变周期,因此无法准确估计计算时间,但我仍然想做一些实验。谢谢

4

1 回答 1

1

我的解决方案包括编写指令集模拟器、运行应用程序和计算指令。那里已经有开源的 avr 模拟器,您可以为此使用/修改。

归根结底,为了做到这一点,你必须遵循指令流,所以要么你实际模拟它,然后自动解决代码真正通过循环的次数等等,要么你编写一个反汇编程序(这是模拟器的一半)并且基本上按照执行顺序执行代码流(实际上比完整的反汇编程序或模拟器简单得多),但是当您找到不同的路径并计算不同的路径时,您必须处理所有可能的代码路径和循环。只需最少的工作,您就可以想出最短的路径,并且知道代码永远不会比这更快。

于 2014-01-29T16:16:40.763 回答