Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Kurze frage zu nem timer


Halber - Mi 07.12.05 22:06
Titel: Kurze frage zu nem timer
lieg ich richtig in der nanahme das die dauer eines intervalls von der computer-leistung abhängt?


Moderiert von user profile iconraziel: Topic aus Multimedia / Spiele / Grafik verschoben am Mi 07.12.2005 um 21:34


feivel3333 - Do 08.12.05 08:58

Hallo,
ein Timer zählt die Zeit, nicht die Schwingungen, die der Quarz verursacht. Wenn du 1000 einstellst, dann sind das 1000 Millisekunden. Mir persönlich ist es noch nicht aufgefallen, dass das Programm merklich anders mit Timern arbeitet, nur weil ich einen schnelleren Prozessor habe. Aber man weiß ja nie...


Delete - Do 08.12.05 09:49

Abgesehen davon, dass der normale Timer an sich sehr ungenau ist, hat der Intervall nichts mit der Leistung des Rechners zu tun. Wenn aber das Programm sehr viel Prozessorleistung benötigt, kann es schon mal sein, dass du auf dein onTimer etwas warten musst.


Codewalker - Do 08.12.05 10:09

Ich habe mich mit dem Timer auch mal ausgiebig beschäftigt. Normalerweise ist das Intervall des Timers recht konstant, allerdings haben Timer-Botschaften eine sehr niedrige Priorität, so dass bei hoher Prozessorlast durchaus sein kann, dass das Intervall um ein Vielfaches überschritten wird oder auch für die Dauer der Auslastung keine Timer-Botschaften ankommen.
Ich wollte damals eine Zeitmessung durchführen, um den Effekt von Optimierungen zu messen. Zu diesem Zweck empfielt sich QueryPerformanceCounter.


Halber - Mo 12.12.05 20:43

user profile iconCodewalker hat folgendes geschrieben:
Ich habe mich mit dem Timer auch mal ausgiebig beschäftigt. Normalerweise ist das Intervall des Timers recht konstant, allerdings haben Timer-Botschaften eine sehr niedrige Priorität, so dass bei hoher Prozessorlast durchaus sein kann, dass das Intervall um ein Vielfaches überschritten wird oder auch für die Dauer der Auslastung keine Timer-Botschaften ankommen.
Ich wollte damals eine Zeitmessung durchführen, um den Effekt von Optimierungen zu messen. Zu diesem Zweck empfielt sich QueryPerformanceCounter.


und wo krieg ich diesen QueryPerformanceCounter her? das is doch ne komponente oder?


starsurfer - Mo 12.12.05 21:02

nein, das issn befehl:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var start,ende,f:int64;


QueryPerformanceCounter(Start);
//anweisungen
QueryPerformanceCounter(ende);
QueryPerformanceFrequency(f);
showmessage(floattostr((ende-start)/f));