为了账号安全,请及时绑定邮箱和手机立即绑定

如何测量ARM Cortex-A8处理器中程序的执行时间?

如何测量ARM Cortex-A8处理器中程序的执行时间?

C
回首忆惘然 2019-11-25 12:42:26
我正在使用名为i.MX515的基于ARM Cortex-A8的处理器。有Linux Ubuntu 9.10发行版。我正在运行一个用C编写的非常大的应用程序,并且正在使用gettimeofday();函数来衡量应用程序花费的时间。main(){gettimeofday(start);............gettimeofday(end);}该方法足以查看我的应用程序的哪些块花费了多少时间。但是,现在,我正在尝试通过计算时间的gettimeofday()方法来彻底优化我的代码,我发现连续运行之间(在优化前后运行)之间有很大的波动,所以我无法确定实际的执行时间,从而确定改进的影响。谁能建议我该怎么办?如果通过访问循环计数器(ARM网站上的Cortex-M3上的Idea建议)可以使我指向一些代码,该代码为我提供了访问Cortex-A8上的定时器寄存器所必须遵循的步骤?如果此方法不太准确,请提出一些替代方案。谢谢
查看完整描述

3 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

现在已经过去了两年,以扩大Nils的答案!-访问这些计数器的简单方法是使用gator构建内核。然后,它报告计数器值以与Streamline一起使用,Streamline是ARM的性能分析工具。


它将在时间轴上显示每个功能(从总体上概述系统的性能),确切显示执行所需的时间以及已占用的CPU百分比。您可以将其与您设置的每个计数器的图表进行比较,以收集并遵循CPU密集型任务直至源代码级别。


Streamline可与所有Cortex-A系列处理器一起使用。


查看完整回答
反对 回复 2019-11-25
  • 3 回答
  • 0 关注
  • 936 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信