-
28-09-2019 - |
题
是否可以从应用程序消耗的周期计数(处理器指令周期)中确定应用程序上的应用程序的吞吐量?如果是,如何计算它?
解决方案
如果该过程完全是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个处理器时钟。通过计算中断的数量,您应该获得有关功能或功能块所需的时间的“足够估计”。
不隶属于 StackOverflow