Forum: Win32/Win64 API (native code)
Delphi
by negaH,
30. Sep 2006
Die einzigste zeitkritische Operation ist wenn man RDTSC und QueryPerformanceCounter aufruft. Sollte exakt dazwischen ein Taskswitch auftreten haben wir eine Messungenauigkeit. Man könnte das mit einer höheren Threadpriorität versuchen, ist aber im Grunde sinnlos ;) Der Taskswitch könnte ja zu einem ähnlich priorisiertem Task erfolgen, ergo mit höherer Priorität verhindert man nicht den Switch.
...
Forum: Win32/Win64 API (native code)
Delphi
by negaH,
30. Sep 2006
Es ergeben sich aber auch andere Vorteile bzw. Möglichkeiten ;)
Man kann RDTSC dazu benutzten um die RMS Auslastung der CPUs zu messen. Auf meinem Laptop zb. ergaben sich für die gleiche zu messende Funktion folgende Zeiten
1.) 12 sec
2.) 4 sec
Das zeigt uns das die 2. Messung auf einer CPU lief die 3 mal schneller getaktet wurde als bei der 1. Messung. Man könnte also eine TrayIcon...
Forum: Win32/Win64 API (native code)
Delphi
by negaH,
30. Sep 2006
@Klaus:
Das lässt sich exakt ausrechnen. Die minimale Zeitspanne der "Zeitschleife" sollte min 2 mal so groß sein das wir alle Takte der Refrerenzfrequenz abgearbeitet haben. In unserem Falle also QueryPerformanceFrequency() * 2. Wenn diese Funktion intern auf die Time Stamp Counter geht sollte man also ca. 2 Sekunden warten, da diese Funktion ja dann die CPU Frequenz in Hz angibt und das...
Forum: Win32/Win64 API (native code)
Delphi
by negaH,
29. Sep 2006
Naja, das ist nicht so trivial wie es sich anhört.
Ich messe ja nicht mit QueryPerformanceCounter() sondern die CPU Takte mit RDTSC -> Time Stamp Counter.
Das sieht dann ungefähr so aus:
1.) Kalibration
- ermittelle die RDTSC Takte für eine beliebige Zeitdauer X (zb. 10ms)
- ermittelle parallel dazu mit QueryPerrformanceCounter() einen Start und Stop Wert
Forum: Win32/Win64 API (native code)
Delphi
by negaH,
29. Sep 2006
Hi Leute,
heute musste ich erstaunt feststellen das meine Zeitmessroutinen/Taktanzahlmessungen auf einem Intel Duo Core Laptop total falsche Ergebnisse liefern. Ich hatte mich schon damit abgefunden das zb. meine Pi Berechnungen auf einem Core Duo 2.16Ghz Laptop nur 4 mal schneller sind als auf einem P4 1.5Ghz Rechner. Das heist das mein Laptop nur 4 mal schneller ist und nicht mehr Power...