Загрузка процессора
Всем известная штука - диспетчер задач в WinXP, одна из полезных на мой взгляд вещей - хронология загрузки ЦП. Но что он за функцию такую использует, чтобы узнать насколько процессор загружен, да и каким образом?? Если такая функция сама вносит дополнительную нагрузку на процессор, то узнать точную занятость CPU не получится никогда. Подскажите, просто в WinAPI что-такое я не встречал или это только на Assembler'е можно сделать?
ну насколько я знаю никакой такой специальной API функции нету. Видимо используется какой-то алгоритм для этого свой. А на Ассемблере ли это реализовывать или на Сях зависит уже от желания разработчика - это не принципиально тут.
Точность любого прибора зависит от помех, которые он приносит в измеряемую среду.
Посему, данная функция должна быть оптимальной по своему быстродействию.
Между прочим, в списке процессов сам taskmgr тоже присутствует - и доля его загружаемости CPU также выводится.
Реализуется немного странно - счетчиком в реестре. В любом процессоре, поддерживающем исполнение задач в режиме разделения времени функция подсчета загрузки реализована аппаратно.
А не подскажешь какая и как ее использовать?
там он описал метод определения загрузки на асме
если ты пишешь на С++ то просто переведи её на С++, тем болле основной алгоритм на Асме его не надо переводить
А я вообще на асме пишу...)
Я конечно понимаю что рассуждения это хорошо, но было бы не плохо увидеть конкретный код. Устроит и Си и асм, но Freeman сказал, что это ключ в реестре и какой же??
с помощью реестра это не точно потому что доступ к реестру это лишнее обращение к жесткому диску следовательно загрузка процессора и лишняя затрата времени. Короче не точно
Гы-гы-гы, га-га-га - решение есть у нас в исходниках. Правда, не проверял.
А насчет доступа к диску. Да будет тебе известно, что реестр построен хитрым образом, и на него монтируются некоторые службы в памяти. Нужный ключ называется HKEY_PERFORMANCE_DATA, невидимом из редактора реестра. Правда, получение данных из этого подраздела достаточно невразумительно, проще воспользоваться вспомогательной библиотекой, как в примере. Благо, PDH.dll в Винду входит.
у нас в исходниках. Правда, не проверял.
А насчет доступа к диску. Да будет тебе известно, что реестр построен хитрым образом, и на него монтируются некоторые службы в памяти. Нужный ключ называется HKEY_PERFORMANCE_DATA, невидимом из редактора реестра. Правда, получение данных из этого подраздела достаточно невразумительно, проще воспользоваться вспомогательной библиотекой, как в примере. Благо, PDH.dll в Винду входит.[/quote]
2Freeman: спасибо, вполне исчерпывающий ответ
[quote=Freeman]Гы-гы-гы, га-га-га - решение есть
А насчет доступа к диску. Да будет тебе известно, что реестр построен хитрым образом, и на него монтируются некоторые службы в памяти. Нужный ключ называется HKEY_PERFORMANCE_DATA, невидимом из редактора реестра. Правда, получение данных из этого подраздела достаточно невразумительно, проще воспользоваться вспомогательной библиотекой, как в примере. Благо, PDH.dll в Винду входит.[/quote]
2Freeman: спасибо, вполне исчерпывающий ответ