Deutsch
Wünsche und Anregungen

Erledigt: getTickCount vs. timeGetTime()

 


Und wenn ich jetzt nicht neustarten müsste hätte ich sogar das vollständige Posting absenden können.

Nachtrag:

Wie auch immer,
KompilierenMarkierenSeparieren zeigt, dass winmm.dlls timeGetTime() nicht nur genauer, sondern auch schneller als &getTickCount ist.

2 kB
Hochgeladen:27.04.2009
Ladeanzahl156
Herunterladen
311 kB
Hochgeladen:27.04.2009
Ladeanzahl93
Herunterladen
 
27.04.2009  
 




Jörg
Sellmeyer
[...] 
[...] 
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
27.04.2009  
 




RGH
... wobei mich der Thread daran erinnert, dass ich diese Funktionen für die Systemvariable &GetTickCount schon immer mal austtauschen wollte.
Und bevor ichs wieder vergesse, habe ich es jetzt gleich erledigt. In der nächsten XProfan-Version verbirgt sich hinter &GetTickCount die Api TimeGetTime.

Gruß
Roland
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
27.04.2009  
 




Frank
Abbing
Ein alter Hut wurde mal wieder ausgegraben.

Roland: Geh einen Schritt weiter und schreibe auch Sleep um.
 
28.04.2009  
 




Sebastian
König
Frabbing, Beitrag=52083, Zeitpunkt=28.04.2009
Ein alter Hut wurde mal wieder ausgegraben.

Roland: Geh einen Schritt weiter und schreibe damit auch Sleep um.


Das wäre eine ganz schlechte Idee! Sleep mit Schleife, die die Zeit abfragt, wäre letztlich nur ein Busy Wait und läuft damit der Idee hinter Sleep entgegen...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
28.04.2009  
 



Frabbing, Beitrag=52083, Zeitpunkt=28.04.2009
Ein alter Hut wurde mal wieder ausgegraben.


Genau, zeigt aber: Ein guter Hut zur falschen Zeit ist ähnlich relevant wie ein Schlechter zur Richtigen.

Verhält sich ein klein wenig vielleicht wie in der Heisenbergsche Unschärferelation beschrieben - aber da ist wohl eher Sebastian unser Crack .
 
28.04.2009  
 




RGH
iF, Beitrag=52085, Zeitpunkt=28.04.2009

Frabbing, Beitrag=52083, Zeitpunkt=28.04.2009
Ein alter Hut wurde mal wieder ausgegraben.


Genau, zeigt aber: Ein guter Hut zur falschen Zeit ist ähnlich relevant wie ein Schlechter zur Richtigen.

Verhält sich ein klein wenig vielleicht wie in der Heisenbergsche Unschärferelation beschrieben - aber da ist wohl eher Sebastian unser Crack .


Nun, in diesem Fall war es wohl ein alter Hut zur richtigen Zeit, denn ich hatte meine Delphi-IDE mit dem XProfan-Projekt offen und konnte den Austausch der API-Funktion erledigen, bevor ichs wieder vergesse!

Gruß
Roland

Nachsatz: Was das Sleep betrifft hat Sebastian natürlich recht: Das wäre dann was ganz anderes (siehe API-Doku zu Sleep): Sleep gibt zunächst einmal den Prozessor für andere anstehenden Aufgaben frei, wartet dann mindestens (!) die angegebene Anzahl Millisekunden und beansprucht dann den Prozessor wieder für das Programm. Selbst beim Parameter 0 wird zunächst der Prozessor freigegeben, allerdings nur um sich sofort wieder seiner Dienste zu versichern. (Mit einem Sleep 0 am rechten Platz kann man somit wirkungsvoll verhindern, dass sein Programm 100% Prozessorlast verursacht ohne es allzu heftig auszubremsen. Besonders bei größeren Rechen-Schleifen kann so etwas ein Segen sein, wenn man z.B. noch Surfen oder Spielen will, während der PC für einen wie wild ackert.) Natürlich könnte man z.B. ein WAIT programmieren, dass die exakten Millisekunden wartet, aber das dürfte dann den Prozessor nicht freigeben, um auf alle Fälle rechtzeitig weitermachen zu können, und würde eher zu solch unfreundlichen Programmen führen, die Windows ausbremsen. Und die will ja eigentlich keiner.
 
Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4
28.04.2009  
 




Frank
Abbing

Sleep mit Schleife, die die Zeit abfragt, wäre letztlich nur ein Busy Wait und läuft damit der Idee hinter Sleep entgegen...


Ich dachte eher daran WaitForSingleObject mit einem Semaphorenobjekt in den Wartephasen (jeweils 1 ms) oder nur WaitForSingleObject mit dem entsprechenden Abbruchszeitraum zu verwenden. Kann natürlich sein, dass die API genauso ungenau arbeitet wie Sleep (habs noch nicht getestet), aber einen Versuch wäre es ja wert.
Mein Vorschlag zielte auf kleine Zeiträume von ein paar Millisekunden, niemand will das System für Sekunden oder länger lahmlegen. Die Idee, die hinter Sleep steckt, ist zwar gut, die Ausführung aber schlecht. Die heutigen Prozessoren arbeiten so schnell, dass ich eine Ungenauigkeit von 15-16 ms pro benutztem Sleep für fahrlässig halte.
 
28.04.2009  
 



Kannste doch selber, obige Tabelle (Bild) zeigt doch das auf normalen Computern mehr als 1 X-Tick pro MS möglich ist.

Also warum nicht einfach do{ case zeitAlle : break } - wäre doch MS-genau, ausser vlt. auf Uraltkrücken...
 
28.04.2009  
 




Frank
Abbing
Ja, ich hatte recht, wie das Beispiel zeigt:
KompilierenMarkierenSeparieren
Die Zeitmessung erfolgt (wie eingestellt) im 5 ms-Takt (kein sein, dass AddString schonmal eine ms verschluckt). Die CPU-Auslastung liegt bei Null. Das dürfte für Sleep ein genauerer Ersatz sein.


Verhält sich ein klein wenig vielleicht wie in der Heisenbergsche Unschärferelation beschrieben - aber da ist wohl eher Sebastian unser Crack .


Mag sein. Meine Lösung funktioniert dennoch.
 
28.04.2009  
 




Frank
Abbing

Kannste doch selber, obige Tabelle (Bild) zeigt doch das auf normalen Computern mehr als 1 X-Tick pro MS möglich ist.
Also warum nicht einfach do{ case zeitAlle : break } - wäre doch MS-genau, ausser vlt. auf Uraltkrücken...


Es geht ja darum, dass Sleep nicht millisekunden-genau arbeitet. Mit dem GetTick-Ersatz arbeite ich schon lange. Sogar mein Junior benutzt ihn für sein Woormy. Ich rede aber von Sleep.
 
28.04.2009  
 



Frabbing, Beitrag=52089, Zeitpunkt=28.04.2009
Mag sein. Meine Lösung funktioniert dennoch.


Nein aber das Wurmspiel !
 
28.04.2009  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

8.154 Betrachtungen

Unbenanntvor 0 min.
RudiB.12.08.2012
iF18.04.2012
Julian Schmidt03.09.2011

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie