对于裸机, 执行时间可以通过频率跟指令周期来计算. 也可以在需要测量的语句前后假如辅助测量的代码去读取硬件计时器上的时间.
但是目前PC上一般都有分时操作系统, 这种情况下语句的执行时间就只能通过频率跟指令周期来计算了.
1, 你需要什么版本的程序就根据什么的算. 如果是需要知道PC上运行的时间, 就根据PC的算, 需要ARM上运行的时间, 就根据ARM的算. 指令周期, 当然就是指令的周期, 汇编下才能直观地看到指令.
2, 对于编译器的优化, 这个还是跟之前一样, 你需要哪个优化等级的, 就按照那个等级优化好了再算.
3, 我对ARM不熟悉, 我用DSP比较多. 印象中ARM应该一个时钟周期的一个流水级别只能运行一条指令, 那你查查ARM的MIPS, MCPS之类的, 用这个当作频率.
4, 对于DSP, 循环跳转等等指令由于有一些特殊的模块, 比如零消耗循环, 延迟槽等等的存在, 计算指令时间还需要具体分析. 至于ARM有没有这些东西, 我就不清楚了.