Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Вниз

Определение загрузки процессора перед запуском проги 


Sergy   (2002-02-06 18:05) [10]

> всем
Использовал код Tosov
Вопрос возник в процессе:
При перенесе кода в тело dll (ISAPI dll) вызвыаю ее припомощи запроса к веб серверу. При проверке оказывается, что
Round(dbIdleTime) возвращает -9223372036854775808.
В обычном приложении код работает идеально и возвращает то что нужно.
Вот код, правда я его немного изменил:

liOldIdleTime.QuadPart:=0;
liOldSystemTime.QuadPart:=0;
if NtQuerySystemInformation(SystemBasicInformation,@SysBaseInfo,sizeof(SysBaseInfo),0)<>NO_ERROR
then exit;
i:=0;
repeat
if NtQuerySystemInformation(SystemTimeInformation,@SysTimeInfo,sizeof(SysTimeInfo),0)<>NO_ERROR
then exit;
if NtQuerySystemInformation(SystemPerformanceInformation,@SysPerfInfo,sizeof(SysPerfInfo),0)<>NO_ERROR
then exit;
if liOldIdleTime.QuadPart <> 0
then begin
// CurrentValue = NewValue - OldValue
dbIdleTime := Li2Double(SysPerfInfo.liIdleTime) - Li2Double(liOldIdleTime);
dbSystemTime := Li2Double(SysTimeInfo.liKeSystemTime) - Li2Double(liOldSystemTime);

// CurrentCpuIdle = IdleTime / SystemTime

dbIdleTime := dbIdleTime / dbSystemTime;

// CurrentCpuUsage% = 100 - (CurrentCpuIdle * 100) / NumberOfProcessors
dbIdleTime := 100.0 - dbIdleTime * 100.0 / SysBaseInfo.bKeNumberProcessors + 0.5;

response.Content:=Response.Content + "<br>"+ inttostr(Round(dbIdleTime));
inc(i);
end;
// store new CPU"s idle and system time
liOldIdleTime := SysPerfInfo.liIdleTime;
liOldSystemTime := SysTimeInfo.liKeSystemTime;
if i=1000 then
begin
Response.Content :=Response.Content+"<br>!!!" ;
Handled:=true;
exit;


end;
until false;




Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Наверх






Память: 0.74 MB
Время: 0.019 c
1-22652           Goblinus              2002-03-27 18:55  2002.04.08  
RichEdit


14-22808          Дмитрий_Ч             2002-02-26 17:29  2002.04.08  
SOS!!!


1-22659           SPeller               2002-03-28 08:59  2002.04.08  
Нити


14-22825          Hiks1                 2002-02-28 07:45  2002.04.08  
Господа авторы сайта.


14-22830          .DelGod.              2002-02-22 19:57  2002.04.08  
Вот такие дела . . .