Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> QueryPerformanceCounter, Определить загрузку процессора 
:(
    Опции темы
Bagheera
  Дата 27.4.2005, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 3.2.2005

Репутация: нет
Всего: нет



Изначально идея состояла в измерении ресурса процессора, отдаваемого каждому процессу. Если процесс пожирает слишком много ресурса на протяжении некоторого времени, нужно понижать его приоритет.
Недавно наткнулся на QueryPerformanceCounter(), хочу знать что она показывает, можно ли ее использовать в данном случае?

М
 
Поиск...


Это сообщение отредактировал(а) Girder - 15.5.2005, 19:56
PM MAIL   Вверх
Bagheera
Дата 27.4.2005, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 3.2.2005

Репутация: нет
Всего: нет



Поиск я использовал, но по характеру кода я не умею угадывать назначения функции. Если не трудно, человеческим языком скажите что показывает значение, которое она возвращает.
PM MAIL   Вверх
Rouse_
Дата 27.4.2005, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 18
Всего: 29



Код

var QW : TLargeInteger;

QueryPerformanceFrequency(QW);
ClockRate := QW.QuadPart;
QueryPerformanceCounter(QW);
StartTime := QW.QuadPart;
repeat
//Application.ProcessMessages;
QueryPerformanceCounter(QW);
TimeElapsed:=(QW.QuadPart - StartTime)/ClockRate;
until TimeElapsed



--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
_hunter
Дата 27.4.2005, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



Bagheera, а по описанию в справке умееш? ;)


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Bagheera
Дата 29.4.2005, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 3.2.2005

Репутация: нет
Всего: нет



Hunter, если бы все было так просто я б не писал на форум.

Спасибо Rouse. Идею я понял.
Только Delphi 7 этого не понял QW.QuadPart.

Это сообщение отредактировал(а) Bagheera - 29.4.2005, 13:32
PM MAIL   Вверх
_hunter
Дата 29.4.2005, 15:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 9
Всего: 98



если бы все было так сложно Я бы не писал smile


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Набережных С.
Дата 30.4.2005, 13:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Bagheera
К сожалению, QueryPerformanceCounter не имеет никакого отношения к загруженности процессора. Можно использовать PDH.dll, надстройкой над механизмом счетчиков производительности. Можно и напрямую, но через PDH.dll намного проще. Простой пример ее использования найдешь здесь http://kladovka.net.ru/

Хотя должен заметить, что:
Цитата
Если процесс пожирает слишком много ресурса на протяжении некоторого времени, нужно понижать его приоритет

достаточно спорная мысльsmile
  Вверх
Marriage
Дата 30.4.2005, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 842
Регистрация: 4.5.2004
Где: Таганрог

Репутация: нет
Всего: 2



Читать из реестра HKEY_DYN_DATA\PerfStats\StatData соответствующий ключ Kernel \CPUUsage.
Взято из сборника DelphiWorld6

Сам не проверял.



--------------------
Praemonitus, praemunitus
PM MAIL ICQ   Вверх
Bagheera
Дата 5.5.2005, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 3.2.2005

Репутация: нет
Всего: нет



Эта спорная мысль реализована в UNIX, по моему логично. Есть некоторые эксплоиты, забивающие процессор разными безполезными вычислениями - именно от них пытаюсь поставить защиту.
Насчет HKEY_DYN_DATA\PerfStats\StatData буду проверять. Спасибо.
PM MAIL   Вверх
GaZone(DiK)
Дата 18.5.2005, 08:50 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











HKEY_DYN_DATA\PerfStats\StatData - это только в 9х, а если ХР, то нужно юзать NtQuerySystemInformation.
Там нужно спрашивать инфу, связанную со временем, а потом с помощью вычислений узнать загр. проца.
  Вверх
SoWa
Дата 18.5.2005, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 2
Всего: 74



А чем код Rouse_ не устраивает?


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
profesiachuvak
Дата 3.12.2009, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 7.11.2009
Где: Беларусь, Минск

Репутация: нет
Всего: 4



Цитата(Bagheera @ 29.4.2005,  13:29)
Hunter, если бы все было так просто я б не писал на форум.

Спасибо Rouse. Идею я понял.
Только Delphi 7 этого не понял QW.QuadPart.

QuadPart это четвётая часть от числа, то есть QW/4 


 ! 
Rrader
profesiachuvak, последнее устное предупреждение не поднимать старые темы



--------------------
Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет.
PM MAIL   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.1425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.