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