我正在使用 OSHI 硬件信息库来显示硬件的详细信息。 我有 i5-4690K 基本 3,5GHz 超频到 4,5GHz,但我只能显示基本 3,5GHz。 是否可以使用 OSHI 或 JNA 获取时钟和乘法器来显示此超频值 4,5Ghz?
最佳答案
我是 OSHI 库的主要作者。 Issue #418 on the github site直接回答您的问题,并用注释显示如何在各种操作系统上检索该值:
对于 Windows,我们可以从 Win32_Processor(CurrentClockSpeed、MaxClockSpeed)获取此值。 OSHI 有一个 WMIUtil 类,可以让您在 Java 中更轻松地完成此操作。
macOS 有一个 sysctl() 调用 hw.cpuFrequency 和 hw.cpuFrequency_max。还有大量其他 sysctl() 调用示例。
Linux lscpu 命令有一个 CPU MHz 字段。您必须对其进行文本解析。可能还有其他更快的/proc 文件系统替代方案。
FreeBSD 对 dev.cpu.0.freq 有 sysctl() 调用
Solaris 有 kstat cpu_info:0:cpu_info0:clock_MHz(或 current_clock_Hz)。 OSHI 有一个 Kstatutil。
这还没有在 OSHI 中实现,因为它正在等待(最近完成的)问题来计算软件包,但现在可以这样做,我们欢迎拉取请求。这个特殊的方法很容易实现,如果您自己解决它,您就可以回馈社区。p>
更新:从版本 4.0.0 开始,现在有一种通过 native 调用获取 CPU 频率的方法。但是,它仅报告操作系统选择报告的内容,这可能不准确。真正的值需要通过第三方程序(例如 CPU-Z、OpenHardwareMonitor)提供内核级驱动程序支持,但在 Java 中无法通过 JNA 获得。
关于java - Java 中的处理器乘法器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49290327/