Консультация № 137690
21.05.2008, 00:20
0.00 руб.
0 1 1
hi deat experts!!!
вопрос по таймерам.
в режиме разделения времени каждый процесс получает некую доллю драгоценного процессорного временни. так вот надо написатьпрограмку, которая считала сколько ей было уделено процессорного времени.
ну вот и нарисовался вопрос - как реализовать такую вот задачку

заранее благодаре н

Обсуждение

Неизвестный
21.05.2008, 01:13
общий
это ответ
Здравствуйте, S@ZaN!

Windows сама занимается сбором пободной статистики. В WinApi есть следующая замечательная функция:
BOOL GetProcessTimes(HANDLE hProcess, LPFILETIME lpCreationTime, LPFILETIME lpExitTime, LPFILETIME lpKernelTime, LPFILETIME lpUserTime);
Которая для процесса возвращает (в формате FILETIME):
lpCreationTime - время создания процесса;
lpExitTime - время заершения процесса (если он был завершен);
lpKernelTime - время работы процесса в режиме ядра (сумма времен работы потоков, для много поточного процесса)
lpUserTime - время работы процесса в режиме пользовательском режиме.
Таким образом сумма lpKernelTime и lpUserTime даст реальное время исполнения процесса. Это время можно сравнить с разностью текущего времени и времени создания потока.
Форма ответа