тактовая частота проца

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
tav
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 28.05.2010 (Пт) 6:48

тактовая частота проца

Сообщение tav » 30.11.2011 (Ср) 13:18

как определять реальную частоту проца?

найденные примеры не подходят, т.к. не отображают корректно.

например у меня 2200MHz.
при снижении мощности на минимум средствами виндовс показывают 800MHz, перестает греться, производительность падает раза в 2. но при проверке всё равно выдает 2.2GHz

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: тактовая частота проца

Сообщение Хакер » 30.11.2011 (Ср) 13:34

В ряде случаев частота высокоточного таймера совпадает с частотой CPU.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tav
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 28.05.2010 (Пт) 6:48

Re: тактовая частота проца

Сообщение tav » 30.11.2011 (Ср) 14:16

видимо мне такой случай совсем не попадался :)

во вложении пример который работал на старых процах правильно (не моё)
Вложения
mhz.rar
определение частоты
(5.08 Кб) Скачиваний: 64

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: тактовая частота проца

Сообщение Хакер » 30.11.2011 (Ср) 15:21

tav писал(а):видимо мне такой случай совсем не попадался :)

Говорим по принципу «лишь бы что»?
Во вложнее уродский код, вызывающий RDTSC. А я советовал получить частоту высокоточного таймера.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: тактовая частота проца

Сообщение ger_kar » 30.11.2011 (Ср) 15:32

Попробуй через WMI
Код: Выделить всё
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT CurrentClockSpeed FROM Win32_Processor",,48)
For Each objItem in colItems
     MsgBox "CurrentClockSpeed: " & objItem.CurrentClockSpeed
Next

Оно?
У меня нет возможности проверить как это будет работать при изменении частоты. Проверь сам и отпишись, что получилось
Бороться и искать, найти и перепрятать

tav
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 28.05.2010 (Пт) 6:48

Re: тактовая частота проца

Сообщение tav » 30.11.2011 (Ср) 16:08

ger_kar писал(а):Попробуй через WMI
Код: Выделить всё
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT CurrentClockSpeed FROM Win32_Processor",,48)
For Each objItem in colItems
     MsgBox "CurrentClockSpeed: " & objItem.CurrentClockSpeed
Next

Оно?
У меня нет возможности проверить как это будет работать при изменении частоты. Проверь сам и отпишись, что получилось

да, оно... большое спасибо.
надо наверно только переделать что б без WMI было.

2хакер:
почему код уродский?
высокоточный таймер это QueryPerformanceFrequency ?

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: тактовая частота проца

Сообщение ger_kar » 30.11.2011 (Ср) 16:51

tav писал(а):надо наверно только переделать что б без WMI было.
А чем тебя WMI не устраивает? WMI довольно мощная технология, со множеством возможностей и огород не надо городить. Кстати и загрузку процессора в приведенном примере очень легко получить.
Бороться и искать, найти и перепрятать

tav
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 28.05.2010 (Пт) 6:48

Re: тактовая частота проца

Сообщение tav » 03.12.2011 (Сб) 13:10

покопавшись немного был найден другой вариант записи, дающий от же результат:
Код: Выделить всё
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2")
Set colItems = objWMIService.InstancesOf("Win32_Processor")
For Each objItem In colItems
     MsgBox"CurrentClockSpeed: " & objItem.CurrentClockSpeed
Next


что лучше использовать InstancesOf или ExecQuery ?
какая разница?

2ger_kar:
я не спорю, что WMI довольно мощная технология, но если не ошибаюсь она может быть отключена.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: тактовая частота проца

Сообщение ger_kar » 03.12.2011 (Сб) 18:08

tav писал(а):что лучше использовать InstancesOf или ExecQuery ?какая разница?
Постараюсь разъяснить сей момент ;)
И InstancesOf и ExecQuery являются методами объекта SWbemServices.
ExecQuery Выполняет запрос для получения коллекции объектов (классов или экземпляров).
InstancesOf Возвращяет коллекцию экземпляров указанного класса.
Причем если ExecQuery работает посредством запроса WQL, то InstancesOf Возвращает коллекцию экземпляров по имени, не используя запрос. Что предпочтительнее использовать в данном случае? Предпочтительнее использовать ExecQuery и тот пример, который привел я. Почему? Да все очень просто, он будет более производительным, причем использовать именно запрос такого вида:
SELECT CurrentClockSpeed FROM Win32_Processor, а не SELECT * FROM Win32_Processor
tav писал(а):я не спорю, что WMI довольно мощная технология, но если не ошибаюсь она может быть отключена.
Отключить конечно можно, но обычно она работает, причем по умолчанию она всегда включена. Кстати в программе если имеются опасения, можно просто ее проверять и принудительно включать. Правда это прокатит только под админом.
Бороться и искать, найти и перепрятать

tav
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 28.05.2010 (Пт) 6:48

Re: тактовая частота проца

Сообщение tav » 06.12.2011 (Вт) 5:10

спасибо, полезная информация.

в результате тестов на "скорую руку" получилось, что:
1. InstancesOf("Win32_Processor") и ExecQuery("SELECT * FROM Win32_Processor",,48) работают в среднем одинаково по скорости.
2. ExecQuery("SELECT CurrentClockSpeed FROM Win32_Processor",,48) в ~5 раз быстрее у меня. (в 4 раза на более мощном компе)

но это все верно если нужен только один запрос.
когда нужно несколько, то второй вариант на начинает проигрывать по скорости, т.к. у первых скорость остается прежней.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: тактовая частота проца

Сообщение ger_kar » 06.12.2011 (Вт) 19:04

tav писал(а):но это все верно если нужен только один запрос. когда нужно несколько, то второй вариант на начинает проигрывать по скорости, т.к. у первых скорость остается прежней.
А зачем использовать несколько запросов? Я что-то не совсем понял, ты что, для того что-бы получить несколько свойств у экземпляра класса Win32_Processor используешь несколько запросов, а зачем?
Можно же перечислить все что тебе надо в одном запросе и все получить за 1 раз.
Например ExecQuery("SELECT CurrentClockSpeed, MaxClockSpeed, ProcessorId FROM Win32_Processor",,48)
Бороться и искать, найти и перепрятать


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Yandex-бот и гости: 23

    TopList