AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Wie schnell ist Now?

Ein Thema von tn249 · begonnen am 7. Sep 2004 · letzter Beitrag vom 9. Sep 2004
Antwort Antwort
Seite 1 von 3  1 23   
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#1

Wie schnell ist Now?

  Alt 7. Sep 2004, 20:42
Hi

mich würde interessieren wie schnell die funktion Now aus der unit DateUtils ist und ob es sich lohnt den wert von now in eine extra varible zu speichern und dann mit bestimmten werten zu vergleichen oder now jedesmal direkt aufzurufen

MfG
tn249
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Wie schnell ist Now?

  Alt 7. Sep 2004, 20:48
Benutze es doch direkt ohne Variable. 8)
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Wie schnell ist Now?

  Alt 7. Sep 2004, 20:52
Tu ich doch, aber mein Programm prüft Now rel. oft und der PC is lahm, sodass ich mir darüber gedanken machen muss
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.536 Beiträge
 
#4

Re: Wie schnell ist Now?

  Alt 7. Sep 2004, 20:53
Hi tn249,

wenn dein Programm immer die aktuelle zeit benötigt, dann verwende Now direkt. Falls du mit einer Zeit mehrere Berechnungen durchführen musst, und die Zeit dabei von großer Bedeutung ist, dann verwende eine Variable.
Ich hoffe ich hab dich jetzt nicht noch mehr durcheinandergebracht

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.421 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Wie schnell ist Now?

  Alt 7. Sep 2004, 21:54
Also normalerweise ist now in der Lage in Millisekundenschritten zu arbeiten, aber aus technischen Gründen arbeitet Now nur in 10-Millisekundenschritten.

Zur Verwendung: machst wie alcaeus sagte, also wenn die selbe Zeit in mehreren Operationen verwendet wird, dann nimm 'ne Variable.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Wie schnell ist Now?

  Alt 7. Sep 2004, 22:01
Die 10-Millisekunden-Schritte sind aber Rechnerabhängig. Bei mir z.B. hab ich bemerkt, dass nur alle 16ms now aktualisiert wird.
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.421 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Wie schnell ist Now?

  Alt 7. Sep 2004, 22:21
könnte stimmen ... jetzt wo du's sagst hatten wir (glaub ich) schonmal 20, oder 25ms

Also weniger als 1ms wird es nie - ist Aufgrund der inneren Aufbaus von Now nicht möglich, aber die wird wohl nie erreicht.


PS: ich hab mal 'ne Messreie gemacht und dort ging es in 10ms-Schritten, aber wenn ich die jetzt wiederhole, dann sind es zwar weiterhin 10ms, allerdings immer in 'nem anderen Bereich (also einmal ist es z.B. 3-13-23-33... und ein anderes Mal z.B. 7-17-27-37... , oder eben anders)

[edit]
OK, ich hab's, warum sich das bei mir so "eigenartig" ändert - es sind halt nicht genau 10ms (bei mir), sondern durchschnittlich eben 10.015 ms (und in meiner kurzen Messreihe ist der Sprung zufällig nie aufgetaucht)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von tn249
tn249

Registriert seit: 18. Jan 2004
Ort: München
164 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Wie schnell ist Now?

  Alt 7. Sep 2004, 23:27
also kann man davon ausgehen das now ca 10 ms sec braucht

da frage ich mich jetzt wenn wir schon dabei sind das so genau zu erläutern wie schnell eine variable in der der wert von now gespeichert werden kann initialisiert werden kann und wie schnell eine wertzuweisung ist

und wenn mans jetzt ganz genau haben möchte müsste man ja noch den prozessor mit einbeziehen, da ja nichtnur die taktfrequenz entscheidend ist sondern wie schnell der prozessor die verschiedenen basis rechenoperationen durchführen kann,
--ich meine mich zu erinnern dass es da bautypen spezifische unterschiede gibt, aber das lassen wir jetzt besser aussen vor

MfG und Danke schonmal
tn249
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
39.421 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Wie schnell ist Now?

  Alt 8. Sep 2004, 01:07
Wer wissen möchte, wie schnell nun bei ihm Now reagiert, der kannst ja mal von Windows erfragen (siehe Demo), oder er mist nach (siehe Codeschnipsel)

Das Codeschnipsel
Benötigt wir ein Button (Button1) und ein Editfeld (Edit1).

Ausgegeben wird die durchschnittliche Dauer (in Millisekunden).

Gemessen werden 1000 Zyklen (kann notfalls geändert werden), was bei 10ms Zyklusdauer etwa 10 Sekunden dauern sollte.

Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
  Var T, N: TTime;
    A: Integer;
    S: TTime;

  Begin
    S := Now;
    T := S;
    A := 0;
    While A <> 1000 do Begin
      N := Now;
      If N <> T Then Begin
        T := N;
        Inc(A);
      End;
    End;
    Edit1.Text := FloatToStr((N - S) * MSecsPerDay / A);
    Beep; Sleep(250); Beep; Sleep(250); Beep;
  End;
Die Demo
Auf Seite 2 steht unter SystemTimeAdjustment / TimeAdjustment & TimeIncrement der Wert (Bedeutung siehe MSDN-Library durchsuchenGetSystemTimeAdjustment)
Angehängte Dateien
Dateityp: exe system_datumszeit_speicher_sfx_466.exe (258,2 KB, 20x aufgerufen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Wie schnell ist Now?

  Alt 8. Sep 2004, 02:04
Zitat von himitsu:
Delphi-Quellcode:
While True do Begin;
  N := Now;
  If N <> T Then Begin
    T := N;
    Inc(A);
    If A = 1000 Then Break;
  End;
End;
*shiver* so ganz nach Styleguide ist ja ja nicht, woll!? Und eine recht komische Form einer repeat..until-Schleife dazu ; und was macht das ';' hinter 'begin'?? Und Schlüsselwörter mit Großbuchstaben beginnen, Variablen groß, 'Begin' in der Zeile des Schleifen/Bedingungs-Kopfes... ich glaube, du hast es geschafft in diesen paar Zeilen so gut wie möglich dem Styleguide aus dem Weg zu gehen

Delphi-Quellcode:
repeat
  n := now;
  if t <> n then
  begin
    t := n;
    inc(a);
  end;
until a = 1000;
fände ich da schöner 8)


Das, und auch nur aus Gründen der Ästhetik, nur am Rande! nicht bös gemeint!

gruss,
dizzy


\\edit: Und dann noch sowas:
  Beep; Sleep(250); Beep; Sleep(250); Beep; *kopfschüttel*
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf