Я использую библиотеку OSHI Hardware Information, чтобы показать подробную информацию об оборудовании. У меня i5-4690K с базовой частотой 3,5 ГГц, разогнанной до 4,5 ГГц, и я могу показать только базовую частоту 3,5 ГГц. Возможно ли с OSHI или с JNA получить часы и множитель, чтобы показать это разогнанное значение 4,5 ГГц?
Да, я думаю, что автор не реализовал это в своем проекте, поэтому мне в основном любопытно, могу ли я получить эти данные с помощью JNA или другим способом.
См. askubuntu.com/questions/218567/… - вы всегда можете запустить внешнюю программу из Java и проанализировать вывод.




Я основной автор библиотеки OSHI. Выпуск # 418 на сайте github напрямую отвечает на ваш вопрос с комментарием, показывающим, как значение может быть получено в различных операционных системах:
Для Windows мы можем получить это из Win32_Processor (CurrentClockSpeed, MaxClockSpeed). В OSHI есть класс WMIUtil, который может упростить вам выполнение этой задачи внутри Java.
В macOS есть вызовы sysctl () hw.cpufrequency и hw.cpufrequency_max. Существует множество других примеров вызовов sysctl ().
Команда Linux lscpu имеет поле CPU MHz. Вам нужно будет разобрать текст. Могут быть другие альтернативы файловой системы / proc, которые работают быстрее.
FreeBSD имеет вызов sysctl () для dev.cpu.0.freq
В Solaris есть kstat cpu_info: 0: cpu_info0: clock_MHz (или current_clock_Hz). В OSHI есть Kstatutil.
Это (пока) не реализовано в OSHI, потому что ожидало (недавно завершенной) проблемы для подсчета пакетов, но это возможно сделать сейчас, и мы приветствуем запросы на вытягивание. Этот конкретный вариант очень доступен для реализации, и если вы решите его для себя, вы можете вернуть его сообществу.
Обновлено: Начиная с версии 4.0.0, теперь есть метод получения частоты процессора через собственные вызовы. Однако он сообщает только то, что ОС решила сообщать, что может быть неточным. Истинное значение требует поддержки драйверов на уровне ядра, доступной через сторонние программы (например, CPU-Z, OpenHardwareMonitor), но ее невозможно получить в Java через JNA.
Я не знаком с этой библиотекой - просто примечание - вы можете попробовать связаться с авторами напрямую, если вы не получите здесь ответа. Похоже, библиотека находится на gitlab по адресу github.com/oshi/oshi