【发布时间】:2011-01-08 03:27:02
【问题描述】:
我正在一个具有 ARM926Ej-S 处理器的嵌入式设备上做一个项目。我需要对设备上的算法进行性能分析。我是嵌入式环境的新手,不太了解什么是嵌入式设备的性能分析。
有人能告诉我应该考虑哪些参数进行分析吗? 又该如何实施?
谢谢大家
【问题讨论】:
标签: performance embedded analysis
我正在一个具有 ARM926Ej-S 处理器的嵌入式设备上做一个项目。我需要对设备上的算法进行性能分析。我是嵌入式环境的新手,不太了解什么是嵌入式设备的性能分析。
有人能告诉我应该考虑哪些参数进行分析吗? 又该如何实施?
谢谢大家
【问题讨论】:
标签: performance embedded analysis
你有什么样的调试环境?您有在线仿真器 (ICE) 吗?我建议您有一个调试环境,以便您可以在随机时间手动停止执行并检查程序的状态,包括调用堆栈 (stackshots)。以这种方式手动采样调用堆栈将揭示代码中占用大量时间的位置,以便您可以优化它们。 Here is a longer explanation.
这可能与您所考虑的有所不同。许多人认为要找到需要优化的东西,您需要计时代码,但事实并非如此。计时是确定您所做的事情是否有所作为的好方法,但堆栈采样是,有些人认为,找出要做什么以有所作为的最佳方式。
【讨论】:
我的方法是阅读参考手册 (http://www.arm.com/miscPDFs/5499.pdf),它应该涵盖您需要的所有内容。这将告诉您是否有浮点单元,FPU 中存在哪些缺点,使用 DMA 时必须记住的事项、缓存和内存布局以及内存总线速度和许多其他的东西如果您想正确高效地对该设备进行编程,这一点至关重要。
不幸的是,我从未使用过这个特定的设备,所以我不能指出任何具体的东西,但你一定会在 RefManual 中找到你需要的一切。如果您了解硬件,则可以分析算法特定部分的性能影响。但是您必须了解硬件内部结构。
【讨论】: