![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 2 Всего: 38 |
Есть такая задача: необходимо выяснить, на сколько каждый поток системы грузит саму систему. Как решить - понятия не имею, может подскажет кто?
Как я понимаю, задача разделяется на подзадачи - получить указатели на все потоки системы и определить, какой поток какому приложению соответствует... -------------------- ![]() |
|||
|
||||
Rennigth |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 8 Всего: 76 |
хм: Процессы:
Потоки:
Но я думаю что проблема у тебя не с этим. Точно выяснить сколько поток хавает процессорного времени (читай тактов проца на единицу времени(не забывай что зависит от мощности проца)) думаю не получися :( Винда так устроена... Объясни подробнее что ты хочешь, что тебе надо в итоге? Привелегиями не обойдешся? -------------------- (* Honesta mors turpi vita potior *) |
||||||
|
|||||||
aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 2 Всего: 38 |
Получение списка процессов и потоков к этим процессам сделал. А вот как теперь определить, насколько каждый из потоков в отдельности грузит систему - не знаю. Кто-нибудь поможет?
-------------------- ![]() |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 16 Всего: 128 |
эт врядли узнаешь. система не предоставляет такой информации вроде...
-------------------- There are always someone smarter than you... |
|||
|
||||
aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 2 Всего: 38 |
Привелегиями не обойдусь =((( Надо выяснить, насколько каждый поток каждого процесса грузит систему. Если еще точнее - то насколько каждый поток ОПРЕДЕЛЕННОГО приложения грузит систему ("сколько поток хавает процессорного времени"). Вот именно эту задачу и надо решить... -------------------- ![]() |
|||
|
||||
aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 2 Всего: 38 |
Так, есть зацепка: GetThreadTimes
Делаю так:
К сожалению tm1, tm2, tm3, tm4 для всех(!!!) потоков одинаковы. Почему??? Это сообщение отредактировал(а) aktuba - 4.6.2007, 15:36 -------------------- ![]() |
|||
|
||||
Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 8 Всего: 76 |
aktuba, Для GetThreadTimes OpenThread должен выполняться с флагом
времена получаются уже разными, но пока не понял что они означают. Курим дальше... -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
aktuba |
|
||||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 2 Всего: 38 |
Да, это я переделал почти сразу. Но как теперь получить нормальное время - не пойму. Кстати, спасибо Yanis-у, если вместо стандартной TimeToStr использовать:
то результат более вразумительный... Но это еще далеко не решение =((( А время бежит ![]() -------------------- ![]() |
||||
|
|||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
а зачем она тут вообще? это ж просто число тиков 100-наносекундных:
работай просто с 64-битными числами. ps. одного вызова NTSetPrivilege('SeDebugPrivilege', True); будет вполне достаточно... ![]() |
|||
|
||||
aktuba |
|
||||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 2 Всего: 38 |
тогда вопрос:
возвращает 4 параметра, как из них получить секунды? т.е. как "число тиков 100-наносекундных" перевести в нормальное время? -------------------- ![]() |
||||
|
|||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
первые два - перевести функцией FileTimeToSystemTime в "обычное" системное время. последние два - разделить на 10 000 000 (обрати внимание на цитату из предыдущего моего поста) и получишь в секундах. |
|||
|
||||
aktuba |
|
||||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 2 Всего: 38 |
вот это как-раз и интересует, но я не понял как это так... что-то у меня не сходиться: ![]() ![]() Вот код:
-------------------- ![]() |
||||
|
|||||
dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 7 Всего: 158 |
так ты только kernel-time выводишь, а taskmgr, видимо tm3+tm4(user-time)...
|
|||
|
||||
aktuba |
|
|||
![]() Смышленный ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1915 Регистрация: 24.4.2006 Где: Планета Земля Репутация: 2 Всего: 38 |
Так-с... Ну, вроде работает, оцените, plz... Может кто-что предложит...
На рапиде, т.к. на форум положить не получилось =( -------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |