java - Java 中的处理器乘法器

标签 java jna oshi

我正在使用 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 中实现,因为它正在等待(最近完成的)问题来计算软件包,但现在可以这样做,我们欢迎拉取请求。这个特殊的方法很容易实现,如果您自己解决它,您就可以回馈社区。

更新:从版本 4.0.0 开始,现在有一种通过 native 调用获取 CPU 频率的方法。但是,它仅报告操作系统选择报告的内容,这可能不准确。真正的值需要通过第三方程序(例如 CPU-Z、OpenHardwareMonitor)提供内核级驱动程序支持,但在 Java 中无法通过 JNA 获得。

关于java - Java 中的处理器乘法器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49290327/

相关文章:

java - java9下运行jmh测试失败

java - 如何使用 Java 中的 SIGAR 或 OSHI API 获取特定应用程序的操作系统进程详细信息?

java - SocketChannel 还没有准备好

java - android:onClick 警告: "Use databinding or explicit wiring of click listener in code"

java - 通过 JNA 检索数组

来自 C++ 应用程序的 Java com.sun.jna 回调函数

java - 如何检查文件是否可读?

java - 通过 OSHI API 从传感器检索信息时为什么会发生这种情况?

java - 使用 Eclipse 获取 NoClassDefFoundError -> com/sun/jna/platform/win32/Psapi

java - Swing Java 中带有多框架应用程序的任务栏图标