Как определить аппаратное обеспечение (процессор и оперативная память) на машине? - PullRequest
13 голосов
/ 12 мая 2009

Я работаю над кроссплатформенным набором профилирования и хотел бы добавить информацию о ЦП (архитектура / тактовая частота / ядра) и ОЗУ (всего) в отчет о каждом запуске. В настоящее время мне нужно ориентироваться на Windows и Unix, поэтому мне нужны методы для получения этой информации с обеих платформ, какие-либо подсказки?

Редактировать: Спасибо за отличные ответы. Теперь у меня есть архитектура процессора, количество процессоров и общее количество памяти, но мне все еще не хватает тактовой частоты для процессора. Есть идеи для этого?

Ответы [ 11 ]

0 голосов
/ 23 мая 2011

Я написал некоторый код, который использует сервис WMI для получения максимальной тактовой частоты, я знаю, что это VB.net, но он показывает идею:

''' <summary>
''' Use WMI to get the Clock Speed in Hz
''' </summary>
Public Function GetMaxClockSpeedInHz() As Double
    Dim manObj = New ManagementObject("Win32_Processor.DeviceID='CPU0'")
    manObj.Get()
    GetMaxClockSpeedInHz = Convert.ToInt32(manObj.Properties("MaxClockSpeed").Value)
End Function

Ссылка Win32_OperatingSystem: http://msdn.microsoft.com/en-us/library/Aa394239

WMI Ссылка: http://msdn.microsoft.com/en-us/library/aa394572(v=VS.85).aspx

...