Re: GetTickCount
- From: "Hubert Seidel" <nospam@xxxxxxxxxxxxxxxx>
- Date: Thu, 4 Dec 2008 22:55:28 +0100
Hallo DoDi,
"Hans-Peter Diettrich" <DrDiettrich1@xxxxxxx> schrieb im
Newsbeitrag news:6pquliF9fcpnU1@xxxxxxxxxxxxxxxxxxxxx
Hubert Seidel schrieb:elapsed
Die Doku von GetTickCount sagt bei mir:
The GetTickCount retries the number of milliseconds that have
since Windows was started.
Daran dürfte sich seit MSDOS nicht viel geändert haben, außer daß man
Doch: Zu MSDOS-Zeiten gab es kein GetTickCount von Windows ;-)
früher[tm] die Ticks noch selbst in Millisekunden umrechnen mußte. Für
Zeitmessungen gibt es aber inzwischen genauere Quellen, bis hin zu den
PerformanceCountern (wie auch in der Doku erwähnt ;-)
Da es nicht wirklich viele Timer-Quellen im PC gibt, bin ich mir
ziemlich sicher das der Counter welcher mit QueryPerformanceCounter
ausgelesen wird, durch den gleichen Timer wie GetTickCount gefüttert
wird.
Der mit QueryPerformanceFrequency ermittelte Wert ist nicht zufällig
ein Vielfaches von 1193180 bzw. 3579545.
Vor ein paar Jahren hatte ich mit cli (bei >=NT/W2k u.s.w nur bei ring0)
die Counter "stoppen" können. Meinen Erkenntnissen nach wird x
mal pro Sekunde (ich meine je nach System x= (18.2?) 400 oder 1000) ein
Interrupt aufgerufen und ein oder mehrere interne Zähler aktualisiert.
Wenn nun QueryPerformanceCounter oder GetTickCount aufgerufen wird,
dann wird zum einen der Interne Zähler ausgelesen, zum anderen
der Zählerstand vom PIT ausgelesen und der Zwischenwert aufaddiert.
(Bei GetTickCount natürlich mit WrapAround-Logic)
Zumindest bleibe ich bei der Meinung, bis mir plausibel und vor allem
nachvollziehbare andere Variante gezeigt bekomme.
Die Taktfrequenz der CPU (mit RDTSC) schwankt viel zu sehr
da die Quarze hier zum einen viel zu große toleranzen haben,
zum anderen bei Laptops häufig herunter geschaltet wird um
Stom zu sparen. Mit einem 1000ms-Timer und RDTSC kann man tatsächlich
die aktuelle CPU-Frequenz-Schwankungen im großen Maße beobachten.
(Wie gesagt, nicht mein normalen Desktop-PCs sichtbar)
Ok. Bei >=XP weis ich nicht ob es evtl. bereits andere Möglichkeiten
gibt.
mfg.
Herby
--
http://www.hubert-seidel.de
.
- Follow-Ups:
- Re: GetTickCount
- From: Hans-Peter Diettrich
- Re: GetTickCount
- References:
- GetTickCount
- From: Arno Garrels
- Re: GetTickCount
- From: Marian Aldenhövel
- Re: GetTickCount
- From: Hubert Seidel
- Re: GetTickCount
- From: Hans-Peter Diettrich
- GetTickCount
- Prev by Date: Re: GetTickCount
- Next by Date: Re: GetTickCount
- Previous by thread: Re: GetTickCount
- Next by thread: Re: GetTickCount
- Index(es):
Relevant Pages
|
Loading