Wie hoch ist die Genauigkeit von now?
-
- Beiträge: 462
- Registriert: Mi 30. Jul 2008, 13:11
- OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
- CPU-Target: 32Bit
- Kontaktdaten:
Wie hoch ist die Genauigkeit von now?
Hallo!
Liefert die Funktion "now" die Zeit betriebssystemunabhängig in Millisekundengenauigkeit?
Liefert die Funktion "now" die Zeit betriebssystemunabhängig in Millisekundengenauigkeit?
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!
-
- Lazarusforum e. V.
- Beiträge: 2808
- Registriert: Fr 22. Sep 2006, 10:38
- OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
- Wohnort: Hessen
- Kontaktdaten:
Re: Wie hoch ist die Genauigkeit von now?
Bei Now bin ich mir nicht sicher. Ev. steht was in der Pascal-Referenz?RSE hat geschrieben:Liefert die Funktion "now" die Zeit betriebssystemunabhängig in Millisekundengenauigkeit?
Wenn es dir weiter hilft: Die Funktion "Gettickcount" misst die Zeit ganz sicher systemunabhängig im Millisekundenbereich.
Viele Grüße, Euklid
-
- Beiträge: 462
- Registriert: Mi 30. Jul 2008, 13:11
- OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
- CPU-Target: 32Bit
- Kontaktdaten:
Re: Wie hoch ist die Genauigkeit von now?
Das hilft, thx!
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Wie hoch ist die Genauigkeit von now?
Systemabhaengig. Auf Windows NT basierte windowses etwa 1ms, auf win98 1/18.2 s. Auf Unix: weiss ich nicht, und eben dann, machine (architectur) abhaengig.RSE hat geschrieben:Hallo!
Liefert die Funktion "now" die Zeit betriebssystemunabhängig in Millisekundengenauigkeit?
gettickcount is NT specifisch
-
- Beiträge: 462
- Registriert: Mi 30. Jul 2008, 13:11
- OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
- CPU-Target: 32Bit
- Kontaktdaten:
Re: Wie hoch ist die Genauigkeit von now?
Das heißt, dass es keine sichere und systemunabhängige Methode gibt, die Zeit auf Millisekunden genau zu messen? Ich könnte das für meinen Mediaplayer echt gut gebrauchen.
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Wie hoch ist die Genauigkeit von now?
Nein. Genauigkeit und Resolution sind oft auch Teuer, so das es nicht eine universelle definition gibt, und das ist warum wir das nicht mal versuchen zu unterstuetzen. Multicore und CPU/chipset Throttling wird das in zukunft noch schwieriger machen.RSE hat geschrieben:Das heißt, dass es keine sichere und systemunabhängige Methode gibt, die Zeit auf Millisekunden genau zu messen? Ich könnte das für meinen Mediaplayer echt gut gebrauchen.
-
- Beiträge: 462
- Registriert: Mi 30. Jul 2008, 13:11
- OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
- CPU-Target: 32Bit
- Kontaktdaten:
Re: Wie hoch ist die Genauigkeit von now?
Das finde ich sehr unschön. Gerade im Medienbereich wäre es doch sehr hilfreich. So bleiben mir nur die Funktionen, die das Medienframework (unter Win DirectShow) zur Verfügung stellt. Ich hatte gehofft, im Player selbst im millisekundenbereich zeitabhängige Funktionalität hinzufügen zu können.
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Re: Wie hoch ist die Genauigkeit von now?
Aus Interesse, ich hab von Mediaplayern keine Ahnung, aber wo kommt es da auf 1ms an?
Johannes
-
- 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:
Re: Wie hoch ist die Genauigkeit von now?
Ich bin der überzeugung die unix timer und auch die date funktion sind immer millisekundengenau. Unter windows ist GetTickCount millisekundengenau. Die Lazarus GetTickCount basiert auf unixen auf Now so das diese immer Millisekundengenau ist. Höhere Genauigkeit ist allerdings sehr schwer zu erreichen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Wie hoch ist die Genauigkeit von now?
Aber Medien (und ihre APIs) sind schon nicht Plattformunabhängig. Man soll ohnehin dieselbe Timing (resolution, Kalkulations verfahren) als die Codec frameworks (Gstreamer, DirectShow) nutzen.RSE hat geschrieben:Das finde ich sehr unschön. Gerade im Medienbereich wäre es doch sehr hilfreich.
Das ms Timing vernuenftig functioniert mit DirectShow ist logisch, ist auch meistens NT abhaengig. Vielleicht functioniert Gstreamer erst nicht mit ms.
Die vernünftige Loesung konnte sein um Timing zu abstrahieren nach Plattform und/oder backend. (zb es kann anders sein auf dasselbe Plattform wenn man ein ander backend nutzt. Und Phonon kommt auch nach Windows)So bleiben mir nur die Funktionen, die das Medienframework (unter Win DirectShow) zur Verfügung stellt. Ich hatte gehofft, im Player selbst im millisekundenbereich zeitabhängige Funktionalität hinzufügen zu können.
-
- Beiträge: 1102
- Registriert: Di 5. Aug 2008, 09:37
- OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
- CPU-Target: 32/64,PPC(+64), ARM
- Wohnort: Eindhoven (Niederlande)
Re: Wie hoch ist die Genauigkeit von now?
Aus der FreeBSD Gettimeofday (now() primitive on Unix) manpage:Christian hat geschrieben:Ich bin der überzeugung die unix timer und auch die date funktion sind immer millisekundengenau. Unter windows ist GetTickCount millisekundengenau. Die Lazarus GetTickCount basiert auf unixen auf Now so das diese immer Millisekundengenau ist. Höhere Genauigkeit ist allerdings sehr schwer zu erreichen.
Das ist auch logisch, weil das vom hardware Uhr resolution abhaengt. Etwas anders ist zu Teuer.The resolution of the system clock is hardware dependent,
Und die PC hardware Uhr ist programmierbar, und hat oft eine feste Verhaeltniss zum Scheduler clock. Es kontte zb anders sein auf realtime Linux distributionen.
-
- Beiträge: 462
- Registriert: Mi 30. Jul 2008, 13:11
- OS, Lazarus, FPC: WinXP SP3 (L 0.9.28.2 FPC 2.2.4)
- CPU-Target: 32Bit
- Kontaktdaten:
Re: Wie hoch ist die Genauigkeit von now?
Momentan stütze ich mich für die Wiedergabe komplett auf DirectShow. Die einzige Stelle, an der es mich momentan schon interessiert ist die Geschwindigkeitsmessung für die Wiedergabe. Wenn die ein bisschen langsamer reagiert ist es wenig kritisch. Etwas Zeitkritischer ist da die Überwachung vom Progress. DShow sendet bei Audiodateien sehr oft eine Progress-Message. Bei jeder dieser Progress-Messages, überprüfe ich, ob auch der Progress-Counter der Mediendatei einen Fortschritt zeigt. Wenn nicht, dann schmeiße ich sie aus meiner Playliste. Das sollte nicht erst im Sekundenbereich erkannt werden. Ich hatte überlegt an dieser Stelle eine Zeitmessung einzubauen anstatt einer Zählung der Progress-Events ohne Progress im Medium. Diese Zeitmessung müsste natürlich auch entsprechend genau sein.
Später könnte es noch zeitkritischer werden (das weiß ich aber noch nicht sicher), falls ich aktiv in den Progress eingreifen will. Im PAL-Bereich dominieren Framerates von 25fps, bei NTSC dominiert 23,976fps, Film hat 24fps. Die Computerdisplays laufen im Normalfall aber mit 60Hz. Da könnte ein aktiver Eingriff zu einer besseren Bildqualität führen, speziell bei 25fps-Medien. Nur als Szenario, ob ich so etwas implementiere ist noch sehr ungewiss.
Später könnte es noch zeitkritischer werden (das weiß ich aber noch nicht sicher), falls ich aktiv in den Progress eingreifen will. Im PAL-Bereich dominieren Framerates von 25fps, bei NTSC dominiert 23,976fps, Film hat 24fps. Die Computerdisplays laufen im Normalfall aber mit 60Hz. Da könnte ein aktiver Eingriff zu einer besseren Bildqualität führen, speziell bei 25fps-Medien. Nur als Szenario, ob ich so etwas implementiere ist noch sehr ungewiss.
Seit er seinen neuen Computer hat, löst er alle Probleme, die er vorher nicht hatte!
-
- Beiträge: 3444
- Registriert: Mo 11. Sep 2006, 10:24
- OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
- CPU-Target: X32 / X64 / ARMv5
- Wohnort: Krefeld
Re: Wie hoch ist die Genauigkeit von now?
AFAIK, System- und arch- abhängig und (natürlich) beim Erstellen der Kernels konfigurierbar.RSE hat geschrieben:Auf Unix: weiss ich nicht, und eben dann, machine (architectur) abhaengig.
AFAIK: Bei PC-Linux früher 10 mSek und heute 1 mSek.
-Michael