10
我正在优化软件,并希望测量性能。所以我目前正在用OVP(开放式虚拟平台)模拟一个ARM平台,并将统计数据作为模拟时间和模拟指令。如何测量ARM性能?
我的问题是,为什么每次运行软件时都有不同的模拟指令(不同但接近)?每次都不一样吗?是不是这样,我用C编写的软件将被编译为ARM汇编程序指令,并且每次运行软件时,模拟指令将是这些ARM汇编程序指令运行多少次?每次都应该是一样的?
我应该如何测量性能?取10个模拟指令样本并获得平均值?
某些系统可能会在每次运行的测量设备的一个时钟周期内出现,对于某些系统而言,有些系统不会允许这种情况发生。无论如何,这可能与你在做什么有关。你正在运行嵌入式操作系统吗?你在与外围设备,网络等通话时使用哪种软件? – 2011-06-17 13:43:32
指令的数量可能会因您正在做的事情而有所不同,比如说您有20个指令轮询某些事件或外设来完成某些事情。如果从一次运行到下一次运行,你只是错过了一个事件,并且必须再次运行该循环,则有20个指令差异。这种情况在每次模拟中都会发生几次或几次,这可能会增加明显的差异。如果您将代码和测试定制为永远不能依赖外部事件的东西,并且设计将执行相同的路径,那么每次都应该是相同的。 – 2011-06-17 13:46:40
你想要衡量什么样的表现? CPU,内存,IO,网络?如果我们在谈论cpu,bogomips可能值得一试/看。 – PhilW 2011-07-26 08:46:49