是否可以根据应用程序消耗的周期计数(处理器指令周期)确定处理器上应用程序的吞吐量?如果是,如何计算?
问问题
6284 次
4 回答
4
如果该进程完全受 CPU 限制,则您将处理器速度除以周期数以获得吞吐量。
实际上,很少有进程完全受 CPU 限制,在这种情况下,您必须考虑其他因素(磁盘速度、内存速度、序列化等)。
于 2010-06-17T18:09:40.367 回答
2
简单的:
#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()
手册页。
于 2010-06-17T18:08:31.633 回答
0
一些 CPU 具有内部性能寄存器,使您能够收集各种有趣的统计数据,例如指令周期(有时甚至基于每个执行单元)、缓存未命中、缓存/内存读取/写入数等。您可以访问这些直接,但根据您使用的 CPU 和操作系统,可能有现有的工具可以通过 GUI 为您管理所有细节。一个好的分析工具通常会支持性能寄存器,并允许您使用它们收集统计数据。
于 2010-06-17T18:35:11.060 回答
0
如果您使用 TI/Luminary Micro 的Cortex-M3,您可以使用 TI/Luminary Micro 提供的驱动程序库。使用 SysTick 函数,您可以将 SysTickPeriod 设置为 1 个处理器周期:因此您在中断之间有 1 个处理器时钟。通过计算中断的数量,您应该对功能或功能块花费多少时间获得“足够接近的估计”。
于 2010-07-13T08:47:18.930 回答