Форум: "Система";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизКто сколько CPU времени ест. Найти похожие ветки
← →
Seldon (2004-02-26 16:11) [0]Здрасьте.
Как узнать, сколько процессорного времени занимает конкретный процесс? (Тот же Explorer.exe)
← →
VMcL © (2004-02-26 16:15) [1]GetProcessTimes()
← →
Seldon (2004-02-26 17:15) [2]А как интерпретировать её результаты? Мне кажется, нужно использовать lpKernelTime или lpUserTime. Но они вроде как обозначают секунды, а мне нужны проценты.
Возможно я неправильно выразился: мне нужно узнать, на сколько % конкретный процесс загружает CPU.
← →
Burmistroff (2004-02-27 00:16) [3]%=(разница usertime/кол-во секунд между опросами)*100%
← →
VMcL © (2004-02-27 11:18) [4]2 [2]
Кстати, если мне не изменяет склероз, [1] работает в Win2K+.
← →
Игорь Шевченко © (2004-02-27 11:45) [5]VMcL © (27.02.04 11:18)
Во всех NT-системах.
Included in Windows XP, Windows 2000 Professional, and Windows NT Workstation 3.5 and later.
← →
VMcL © (2004-02-27 14:43) [6]Roger that ))
← →
Seldon (2004-02-27 15:47) [7]А способ узнать в 9x есть?
← →
Seldon (2004-02-29 20:01) [8]Может я чего неправильно делаю?
var
Last:Int64;
procedure TForm1.Timer1Timer(Sender: TObject);
var
H:THandle;
ID,hP:Cardinal;
tmp,PT:_FILETIME;
begin
H:=FindWindow("TForm1","Form1");
GetWindowThreadProcessId(H,ID);
hp:=OpenProcess(PROCESS_ALL_ACCESS,false,ID);
GetProcessTimes(hp,tmp,tmp,tmp,PT);
Label1.Caption:=FloatToStr((Int64(PT)-Last)/1*100);
Last:=Int64(PT)
end;
Для теста создал программку с бесконечным циклом. Она загружает на 100%.
Вышеприведённый код для неё даёт 0%. Где ошибка?
← →
jack128 © (2004-02-29 23:26) [9]
> procedure TForm1.Timer1Timer(Sender: TObject);
> H:=FindWindow("TForm1","Form1");
Что то мне подсказывает, что ты ловишь не окно тестового приложение, а окно текущего(того, которое измеряет загрузку) приложения ;-)
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c