是否可以从应用程序消耗的周期计数(处理器指令周期)中确定应用程序上的应用程序的吞吐量?如果是,如何计算它?

有帮助吗?

解决方案

如果该过程完全是CPU绑定的,则将处理器速度除以循环的数量以获取吞吐量。

实际上,几乎没有CPU完全绑定的过程,在这种情况下,您必须考虑其他因素(磁盘速度,内存速度,序列化等)。

其他提示

简单的:

#include <time.h>
clock_t c;
c = clock(); // c holds clock ticks value
c = c / CLOCKS_PER_SEC; // real time, if you need it

请注意,您获得的价值是近似值,有关更多信息,请参见 clock() 男人页.

一些CPU具有内部 性能寄存器 这使您能够收集各种有趣的统计数据,例如指令周期(有时甚至是按执行单元),缓存失误,缓存/内存读取/写入等。您正在使用的CPU和OS可能会有现有工具通过GUI为您管理所有详细信息。通常,良好的分析工具会支持性能寄存器,并允许您使用它们收集统计信息。

如果您使用 Cortex-M3 从Ti/Luminary Micro中,您可以使用 Driverlib 由Ti/Luminary Micro交付。使用Systick功能,您可以将Systickperiod设置为1个处理器周期:因此,中断之间有1个处理器时钟。通过计算中断的数量,您应该获得有关功能或功能块所需的时间的“足够估计”。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top