PerformanceCounter ohne Windows-Unit ?
PerformanceCounter ohne Windows-Unit ?
Gibt es einen Weg, den PerformanceCounter (und die Frequenz) ohne die
entsprechende WinAPI-Funktion abzufragen?
Von dem, was ich über Google rausgefunden habe, kann ich eigentlich
davon ausgehen, _dass_ es funktioniert. Scheint irgendein spezielles Register
zu sein.
Nur steht nirgendwo, wie das Register heißt, oder wie man es richtig abfragt :/
entsprechende WinAPI-Funktion abzufragen?
Von dem, was ich über Google rausgefunden habe, kann ich eigentlich
davon ausgehen, _dass_ es funktioniert. Scheint irgendein spezielles Register
zu sein.
Nur steht nirgendwo, wie das Register heißt, oder wie man es richtig abfragt :/
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
also laut Microsoft ists nicht genauer aber villeicht weisst du ja mehr als die
http://support.microsoft.com/kb/172338
unter linux werden die systemzeitroutinen benutzt die eine etwas höhere auflösung bieten dürften
http://support.microsoft.com/kb/172338
ich les da raus das sowohl gettickcount als auch QueryPerformanceCounter eine 10ms latenz aufweisen können im schlimmsten fall.Function Units Resolution
---------------------------------------------------------------------------
Now, Time, Timer seconds 1 second
GetTickCount milliseconds approx. 10 ms
TimeGetTime milliseconds approx. 10 ms
QueryPerformanceCounter QueryPerformanceFrequency same
unter linux werden die systemzeitroutinen benutzt die eine etwas höhere auflösung bieten dürften
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
MS hat da nur was vertauscht 
Die wollten schreiben, dass PerformanceCounter die gleiche Auflösung
wie PerformanceFrequency hat. Die Auflösung hängt von der Hardware ab
(bei mir 1/2000000000 Sekunde).
Wenn es unter Linux einen anderen Weg gibt, dann werde ich einfach
ruhigen Gewissens erstmal QPC benutzen.
Das ganze ist ja so flexibel, dass man es bei Bedarf leicht austauschen kann.
Trotzdem danke.

Die wollten schreiben, dass PerformanceCounter die gleiche Auflösung
wie PerformanceFrequency hat. Die Auflösung hängt von der Hardware ab
(bei mir 1/2000000000 Sekunde).
Wenn es unter Linux einen anderen Weg gibt, dann werde ich einfach
ruhigen Gewissens erstmal QPC benutzen.
Das ganze ist ja so flexibel, dass man es bei Bedarf leicht austauschen kann.
Trotzdem danke.
-
- Beiträge: 6079
- Registriert: Do 21. Sep 2006, 07:51
- OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
- CPU-Target: AVR,ARM,x86(-64)
- Wohnort: Dessau
- Kontaktdaten:
was ist Qpc ?
Du kannst auch http://wiki.lazarus.freepascal.org/EpikTimer nehmen dort ist das in Assembler direkt mit den entsprechenden instructions gelöst sollte also so nah wie möglich an der der Hardware sein aber ob das auf anderen Plattformen als windows und Linux läuft wag ich zu bezweifeln wobei unter linux das eh die selben ergebnisse liefern dürfte wie die System timer
Du kannst auch http://wiki.lazarus.freepascal.org/EpikTimer nehmen dort ist das in Assembler direkt mit den entsprechenden instructions gelöst sollte also so nah wie möglich an der der Hardware sein aber ob das auf anderen Plattformen als windows und Linux läuft wag ich zu bezweifeln wobei unter linux das eh die selben ergebnisse liefern dürfte wie die System timer
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
QPC ist "QueryPerformanceCounter". Man muss es ja nicht immer Ausschreiben 
Aber der Epik scheint genau das zu sein, was ich suche - sieht jedenfalls recht interessant
aus. Wenn der auch nonLCL arbeitet, dann isses sogar perfekt (weil es unter Windows
auch auf dem PerformanceCounter aufsetzt).
Ansonsten schaue ich mir einfach mal den Source an
Mit der Plattformbeschränkung kann ich leben. QPC ist leider nur auf x86 verfügbar-
kann ich nix dran ändern.
Aber danke.
BTW: Die Smileys sind ein bisschen hässlich...
EDIT:
Ich hab ihn eben kurz angetestet. Funktioniert super!
Das ist eine excellente Lösung. Danke.

Aber der Epik scheint genau das zu sein, was ich suche - sieht jedenfalls recht interessant
aus. Wenn der auch nonLCL arbeitet, dann isses sogar perfekt (weil es unter Windows
auch auf dem PerformanceCounter aufsetzt).
Ansonsten schaue ich mir einfach mal den Source an

Mit der Plattformbeschränkung kann ich leben. QPC ist leider nur auf x86 verfügbar-
kann ich nix dran ändern.
Aber danke.
BTW: Die Smileys sind ein bisschen hässlich...
EDIT:
Ich hab ihn eben kurz angetestet. Funktioniert super!
Das ist eine excellente Lösung. Danke.