Einzelnen Beitrag anzeigen

Benutzerbild von TERWI
TERWI

Registriert seit: 29. Mär 2008
Ort: D-49626
381 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: QueryPerformanceCounter - Probleme, Zeitversatz

  Alt 18. Jul 2011, 07:37
Problem scheint wohl offensichtlich zu sein, dass alle (anderen) Timer zu langsam sind.
Ich muss schon eine Auflösung von max. ( ! ) 250 µS haben, um die Timings unterschiedlicher IR-FB-Typen noch so eben auflösen zu können.
Mit Timer-Auflösungen >= 1 mS ist da leider (gar) nichts zu machen.

Wie gesagt geht das mit dem QPC ganz hervorragend - wenn man die Anwendung auf einen Kern setzt.
Aber:
Was tun, wenn das ganze in einer DLL / Plugin als Child in einem Programm läuft, was es von der Performance her 'nicht so witzig' finden würde, wenn man die CPU-Power beschränkt ?

Ein Ansatz wäre, jedes mal beim Auslesen des Counters die CPU definiert zu setzen und dann gleich wieder zurück zu setzen.
Oder halt so lange auf einer CPU 'sitzen' zu bleiben, bis das FB-Signal fertig gelesen ist....

Irgendwie kann ich mir vorstellen, dass das z.B. bei DVB-Anwendungen mit HD-Signal oder anderen Power-Intensiven Anwendung doch sicher zum stottern im Bildfluß führen wird - also sicher nicht die pralle Lösung.

2. Idee wäre, das ganze in einen Thread zu packen und diesen dann definiert einer CPU zuzuweisen - mit ggf. dann höchster gesetzter Priorität.
Könnte mir vorstellen, dass das geht - aber wie ?
Ich bin da nicht so der Held ....

Jemand vielleicht noch ne andere Idee ?

PS:
In diesem Fred ist die Erklärung sehr gut gegeben, warum.
Nur leider auch noch keine Lösung ...

PS-2:
Der in v.g. Fred beannte MS-Artikel ist jetzt hier nachzulesen.
... ich studiere ihn gerade ...

Geändert von TERWI (18. Jul 2011 um 08:58 Uhr)
  Mit Zitat antworten Zitat