Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

Снова о времени загрузки винды.   Найти похожие ветки 

 
Layner ©   (2004-04-14 10:55) [0]

Получаю время GetTickCount, но это только до 49 суток, а потом снова с нуля, но как тогда WIn2000 показывает, что работает например 100 дней? Т.е. в этом случае есть наверняка ключь в реестре, где говорится сколько переиодов по 49 дней открыта винда? Если кто сталкивался с этим вопросом, подскажите плз.!


 
VMcL ©   (2004-04-14 11:24) [1]

asm
 RDTSC
end;

?


 
Layner ©   (2004-04-14 15:59) [2]

мастера, подскажите 2й момент, написал такой код с подачи VMcL (Спасибо!)

function GetCPUCount:int64; assembler;
asm
 db 0fh,31h
end;


procedure TForm1.Timer1Timer(Sender: TObject);
var
d,H,M,Sec : integer;
tm : integer;
begin
 Tm:=Round(GetCPUCount/1800000000); //моя частота проца, 1,8гиг
  d:=Trunc(Tm/86400);
 Tm:=Tm-d*86400;
  H:=Trunc(Tm/3600);
 Tm:=Tm-H*3600;
  M:=Trunc(Tm/60);
 Tm:=Tm-M*60;
  Sec:=Trunc(Tm/1);

 Edit1.Text:=IntToStr(d)+" "+IntToStr(h)+" "+IntToStr(m)+" "+IntToStr(Sec);
end;


Но есть расхождение с реальными часами, т.е. если машина работает 55 дней, 10 часов, то мой код кажет на 6 часов меньше. Может реальную частоту как то можно точно выставить, а не так, как я сейчас делаю, наугад...(1,8гиг, +,-, 2-3 килогерца)


 
Layner ©   (2004-04-14 16:13) [3]

ПРоверил, реальная частота, судя по программе Cpu-Z 1817,9 мегагерц, а как точно бы, из Delphi ее узнать :(


 
VMcL ©   (2004-04-14 16:14) [4]

Точно 1,8? Может, например, Athlon XP 1.8?

Сделай универсально, а не только для твоего компа. Сначала с помощью RDSTC + QueryPerformanceCounter() + QueryPerformanceFrequency() замерь частоту CPU, потом используй.


 
VMcL ©   (2004-04-14 16:16) [5]

И еще нюанс. RDSTC считает от запуска процессора, а не ОС.


 
Layner ©   (2004-04-14 16:21) [6]

А, понял, но запуск ОС, почти что запуск PC для меня, т.е. +-3 минуты на страшно, а за замер частоты с помощью этих ф-й, спасибо, воспользуюсь!


 
VMcL ©   (2004-04-14 16:28) [7]

>>Layner ©  (14.04.04 16:21) [6]

В теории, функции QueryPerformance*() могут не поддерживаться текущим железом. В таком случае для определения частоты CPU воспользуйся GetTickCount - не так точно, но всё равно неплохо.


 
Layner ©   (2004-04-14 16:36) [8]

Так то так, но GetTickCount до 49 дней инфу держит, а потом обнуляется.. Кстати, скорость вычислил до герца, точность времени почти совпадает.


 
VMcL ©   (2004-04-15 12:52) [9]

>>Layner ©  (14.04.04 16:36) [8]

>Так то так, но GetTickCount до 49 дней инфу держит, а потом обнуляется
Для подсчета тактовой частоты CPU этого хватит. А дальше уже используй RDTSC.



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.03 c
14-1083316983
mfender
2004-04-30 13:23
2004.05.23
Развод с широким размахом?


9-1074102294
HolyMan
2004-01-14 20:44
2004.05.23
Где взять обновления GLScene?


8-1078386896
Petro
2004-03-04 10:54
2004.05.23
Подскажите компонент "Далее-Назад" Wizard!


1-1084196546
webpauk
2004-05-10 17:42
2004.05.23
PopupMenu


1-1083745038
xroad
2004-05-05 12:17
2004.05.23
Need help: Excel & Delphi