Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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.035 c
14-1083258350
Knight
2004-04-29 21:05
2004.05.23
Вопрос по TDBGrid...


1-1084261570
Erik
2004-05-11 11:46
2004.05.23
Внутри Try except имеется класс on E: do MyFunc(E)


1-1083759816
Ann_k
2004-05-05 16:23
2004.05.23
Delphi & Excel


1-1083061938
27-27-41
2004-04-27 14:32
2004.05.23
Перевод string в char


1-1083938793
Cfytr
2004-05-07 18:06
2004.05.23
Папка Temp и папка, где находитсяя сам exe файл





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский