Forum: Sonstige Fragen zu Delphi
Delphi
by oki,
26. Mär 2009
Du wirst aber da keine Sicherheit bekommen. Kommt dein BS zwischendurch auf die Idee mal schnell Teile des Speichers auf die Festplatte zu swappen (ich hab bis heute nicht rausbekommen was wann Windows veranlasst dies zu tun) dann wird du u.U. mit erheblich größeren Verzögerungen rechnen müssen. Vielleicht kann dir ja einer sagen, was du an Diensten und sonstiges alles abschalten mußt damit dein...
Forum: Sonstige Fragen zu Delphi
Delphi
by oki,
26. Mär 2009
Dann habe ich mir noch die Gesamtzeit angeguckt, die das Programm für die 100.000 Schleifendurchläufe braucht. Die variierte bei meinen Tests zwischen 199 und 312 ms.
Das sind dann wohl knapp 3 ns. Du willst die Reaktion von Menschen testen. Welche Abweichungen sind denn dann zulässig? Denk doch mal darüber nach. Unterstellen wir doch mal eine Abweichung von 1000%. Dann bist du immer noch...
Forum: Sonstige Fragen zu Delphi
Delphi
by oki,
26. Mär 2009
ok, ich bin im Moment nicht hundertprozentig fitt bei diesen Themen, aber ich versuchs mal.
Wenn Windows dir dazwischen funken will, dann tut es das auch. Man kann natürlich die Taskpriorität erhöhen, aber im Zweifelsfall legst du alles andere dann durch dein Programm (Task) lahm. Ich hatte auch mal mit der Taskpriorität rumexperimentiert, lahm legen konnte ich den Rechner damit aber so...
Forum: Sonstige Fragen zu Delphi
Delphi
by oki,
26. Mär 2009
ist heute nicht mein Tag.
Du kannst natürlich auch ein Application.ProcessMessages in deine Repeat-Schleife einbauen. Dann ist dein Programm zwar auch in dieser Zeit nicht bedienbar, aber die Windows-Botschaften werden abgearbeitet und deine Anwendung wird wenn nötig auch neu gezeichnet und "friert" auf dem Bildschirm nicht ein.
Gruß oki
Forum: Sonstige Fragen zu Delphi
Delphi
by oki,
26. Mär 2009
Wenn der Rest egal ist (warten bis sich was tut), dann benutze doch GetTickCount um die Zeit zu ermitteln. Das sollte hinreichend genau sein.
var LastTime, WaitTime : DWord;
...
// hier wird gestartet
LastTime := GetTickCount;
// hier läuft alles was laufen muss
....
// hier ist fertig
WaitTime := GetTickCount - LastTime; // und hier hast du in ms die vergangene Zeit