如何在JAVA中以GHz为单位测量处理器速度

如何在JAVA中以GHz为单位测量处理器速度,java,clock,Java,Clock,我能够测量程序的执行时间,但不知道如何计算处理器的速度。这是计算时钟周期所必需的 noofclockcycles = time * processorspeed * pow(10,9) / pow(10,3); 你所谓的处理器“速度”(时钟频率)与处理能力没有直接关系,更不用说你的程序将由操作系统分配处理能力的哪一部分了。这就像试图通过电机的当前功率输出或最大扭矩来确定电机的转速一样 您可以通过clockRate\u B=(execTime\u A*clockRate\u A)/execTim

我能够测量程序的执行时间,但不知道如何计算处理器的速度。这是计算时钟周期所必需的

noofclockcycles = time * processorspeed * pow(10,9) / pow(10,3);
你所谓的处理器“速度”(时钟频率)与处理能力没有直接关系,更不用说你的程序将由操作系统分配处理能力的哪一部分了。这就像试图通过电机的当前功率输出或最大扭矩来确定电机的转速一样

您可以通过
clockRate\u B=(execTime\u A*clockRate\u A)/execTime\u B
进行非常粗略的近似,其中
(execTime\u A*clockRate\u A)
是从典型机器(或一组典型机器)获得的。然而,这并不能解释CPU架构的差异,因为CPU架构的差异会使测试以完全相同的时钟速率运行快或慢几倍


您可以做的最好的事情是
exec
OS实用程序(如Linux中的
cpuinfo
和Windows中的
wmic
)来获取这些信息。

我认为您不能,因为时钟并不代表执行速度-这不是线性的。您可以使用JNI调用本机代码来获取硬件信息。可能是XY问题。你想做什么?记住,JIT是有原因的。