Форум: "Система";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизСнова о времени загрузки винды. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.032 c