我能够测量程序的执行时间,但不知道如何计算处理器速度。这是计算时钟周期所必需的。
noofclockcycles = time * processorspeed * pow(10,9) / pow(10,3);
您所说的处理器“速度”(时钟频率)与处理能力没有直接关系,更不用说操作系统将分配您的程序的处理能力的哪一部分。这就像试图仅通过其当前的功率输出或最大扭矩来找出电机的 RPM。
您可以通过 进行非常粗略的近似clockRate_B = ( execTime_A * clockRate_A ) / execTime_B
,其中( execTime_A * clockRate_A )
是从典型机器(或一组典型机器)获得的。但是,这并没有考虑 CPU 架构差异,这些差异会使您的测试在完全相同的时钟频率下运行快几倍或慢几倍。
您可以做的最好的事情是使用exec
操作系统实用程序(如cpuinfo
在 Linux 和wmic
Windows 中)来获取此信息。