Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   timeGetTime (https://www.delphipraxis.net/145953-timegettime.html)

Luckie 11. Jan 2010 12:50


timeGetTime
 
Hallo,
könntet ihr mal bitte folgendes Programm kompilieren, laufen lassen und die Ausgabe hier posten?

Delphi-Quellcode:
program Project4;

{$APPTYPE CONSOLE}

uses
  Windows, mmsystem, SysUtils;

var
  LastTick: Cardinal = 0;
  Tick: Cardinal = 0;
  LastTime: Cardinal = 0;
  MyTime: Cardinal = 0;
  i: Integer = 50;

begin
  while(i > 0) do
  begin
    Tick := GetTickCount;
    MyTime := timeGetTime;
    writeln(Format('Tick %d, Time %d, DeltaTick %d, DeltaTime %d', [Tick, myTime, Tick-LastTick, MyTime-LastTime]));
    LastTick := Tick;
    LastTime := MyTime;
    Sleep(53);
    Dec(i);
  end;
  Readln;
end.
Mein Ergebnis:
Code:
Tick 9477968, Time 9477970, DeltaTick 50, DeltaTime 53
Tick 9478018, Time 9478023, DeltaTick 50, DeltaTime 53
Tick 9478068, Time 9478076, DeltaTick 50, DeltaTime 53
Tick 9478128, Time 9478129, DeltaTick 60, DeltaTime 53
Tick 9478178, Time 9478183, DeltaTick 50, DeltaTime 54
Tick 9478228, Time 9478236, DeltaTick 50, DeltaTime 53
Tick 9478289, Time 9478289, DeltaTick 61, DeltaTime 53
Tick 9478339, Time 9478342, DeltaTick 50, DeltaTime 53
Tick 9478389, Time 9478395, DeltaTick 50, DeltaTime 53
Tick 9478449, Time 9478448, DeltaTick 60, DeltaTime 53
Tick 9478499, Time 9478502, DeltaTick 50, DeltaTime 54
Tick 9478549, Time 9478555, DeltaTick 50, DeltaTime 53
Tick 9478609, Time 9478608, DeltaTick 60, DeltaTime 53
Tick 9478659, Time 9478661, DeltaTick 50, DeltaTime 53
Tick 9478709, Time 9478714, DeltaTick 50, DeltaTime 53
Tick 9478759, Time 9478767, DeltaTick 50, DeltaTime 53
Tick 9478819, Time 9478821, DeltaTick 60, DeltaTime 54
Tick 9478869, Time 9478874, DeltaTick 50, DeltaTime 53
Tick 9478919, Time 9478927, DeltaTick 50, DeltaTime 53
Tick 9478980, Time 9478980, DeltaTick 61, DeltaTime 53
Tick 9479030, Time 9479033, DeltaTick 50, DeltaTime 53
Tick 9479080, Time 9479086, DeltaTick 50, DeltaTime 53
Tick 9479140, Time 9479140, DeltaTick 60, DeltaTime 54
Tick 9479190, Time 9479193, DeltaTick 50, DeltaTime 53
Tick 9479240, Time 9479246, DeltaTick 50, DeltaTime 53
Tick 9479300, Time 9479299, DeltaTick 60, DeltaTime 53
Tick 9479350, Time 9479352, DeltaTick 50, DeltaTime 53
Tick 9479400, Time 9479405, DeltaTick 50, DeltaTime 53
Tick 9479460, Time 9479459, DeltaTick 60, DeltaTime 54
Tick 9479510, Time 9479512, DeltaTick 50, DeltaTime 53
Tick 9479560, Time 9479565, DeltaTick 50, DeltaTime 53
Tick 9479610, Time 9479618, DeltaTick 50, DeltaTime 53
Tick 9479671, Time 9479671, DeltaTick 61, DeltaTime 53
Tick 9479721, Time 9479724, DeltaTick 50, DeltaTime 53
Tick 9479771, Time 9479778, DeltaTick 50, DeltaTime 54
Tick 9479831, Time 9479831, DeltaTick 60, DeltaTime 53
Tick 9479881, Time 9479884, DeltaTick 50, DeltaTime 53
Tick 9479931, Time 9479937, DeltaTick 50, DeltaTime 53
Tick 9479991, Time 9479990, DeltaTick 60, DeltaTime 53
Tick 9480041, Time 9480043, DeltaTick 50, DeltaTime 53
Tick 9480091, Time 9480097, DeltaTick 50, DeltaTime 54
Tick 9480151, Time 9480150, DeltaTick 60, DeltaTime 53
Tick 9480201, Time 9480203, DeltaTick 50, DeltaTime 53
Tick 9480251, Time 9480256, DeltaTick 50, DeltaTime 53
Tick 9480301, Time 9480309, DeltaTick 50, DeltaTime 53
Tick 9480362, Time 9480362, DeltaTick 61, DeltaTime 53
Tick 9480412, Time 9480416, DeltaTick 50, DeltaTime 54
Tick 9480462, Time 9480469, DeltaTick 50, DeltaTime 53
Tick 9480522, Time 9480522, DeltaTick 60, DeltaTime 53
Gerne können auch die Ergebnisse hier interpretiert und diskutiert werden.

Ich sage erstmal noch nichts dazu.

Daniel 11. Jan 2010 12:53

Re: timeGetTime
 
:?:

Code:
Tick 18859109, Time 18859097, DeltaTick 63, DeltaTime 53
Tick 18859156, Time 18859151, DeltaTick 47, DeltaTime 54
Tick 18859203, Time 18859205, DeltaTick 47, DeltaTime 54
Tick 18859265, Time 18859259, DeltaTick 62, DeltaTime 54
Tick 18859312, Time 18859312, DeltaTick 47, DeltaTime 53
Tick 18859375, Time 18859366, DeltaTick 63, DeltaTime 54
Tick 18859421, Time 18859420, DeltaTick 46, DeltaTime 54
Tick 18859484, Time 18859473, DeltaTick 63, DeltaTime 53
Tick 18859531, Time 18859527, DeltaTick 47, DeltaTime 54
Tick 18859593, Time 18859581, DeltaTick 62, DeltaTime 54
Tick 18859640, Time 18859634, DeltaTick 47, DeltaTime 53
Tick 18859687, Time 18859688, DeltaTick 47, DeltaTime 54
Tick 18859750, Time 18859742, DeltaTick 63, DeltaTime 54
Tick 18859796, Time 18859796, DeltaTick 46, DeltaTime 54
Tick 18859859, Time 18859849, DeltaTick 63, DeltaTime 53
Tick 18859906, Time 18859903, DeltaTick 47, DeltaTime 54
Tick 18859968, Time 18859957, DeltaTick 62, DeltaTime 54
Tick 18860015, Time 18860010, DeltaTick 47, DeltaTime 53
Tick 18860062, Time 18860064, DeltaTick 47, DeltaTime 54
Tick 18860125, Time 18860118, DeltaTick 63, DeltaTime 54
Tick 18860171, Time 18860172, DeltaTick 46, DeltaTime 54
Tick 18860234, Time 18860225, DeltaTick 63, DeltaTime 53
Tick 18860281, Time 18860279, DeltaTick 47, DeltaTime 54
Tick 18860343, Time 18860333, DeltaTick 62, DeltaTime 54
Tick 18860390, Time 18860386, DeltaTick 47, DeltaTime 53
Tick 18860453, Time 18860440, DeltaTick 63, DeltaTime 54
Tick 18860500, Time 18860494, DeltaTick 47, DeltaTime 54
Tick 18860546, Time 18860548, DeltaTick 46, DeltaTime 54
Tick 18860609, Time 18860601, DeltaTick 63, DeltaTime 53
Tick 18860656, Time 18860655, DeltaTick 47, DeltaTime 54
Tick 18860718, Time 18860709, DeltaTick 62, DeltaTime 54
Tick 18860765, Time 18860762, DeltaTick 47, DeltaTime 53
Tick 18860828, Time 18860816, DeltaTick 63, DeltaTime 54
Tick 18860875, Time 18860870, DeltaTick 47, DeltaTime 54
Tick 18860921, Time 18860924, DeltaTick 46, DeltaTime 54
Tick 18860984, Time 18860977, DeltaTick 63, DeltaTime 53
Tick 18861031, Time 18861031, DeltaTick 47, DeltaTime 54
Tick 18861093, Time 18861085, DeltaTick 62, DeltaTime 54
Tick 18861140, Time 18861138, DeltaTick 47, DeltaTime 53
Tick 18861203, Time 18861192, DeltaTick 63, DeltaTime 54
Tick 18861250, Time 18861246, DeltaTick 47, DeltaTime 54
Tick 18861312, Time 18861300, DeltaTick 62, DeltaTime 54
Tick 18861359, Time 18861353, DeltaTick 47, DeltaTime 53
Tick 18861406, Time 18861407, DeltaTick 47, DeltaTime 54

s.h.a.r.k 11. Jan 2010 12:55

Re: timeGetTime
 
Code:
Tick 605156941, Time 605156944, DeltaTick 605156941, DeltaTime 605156944
Tick 605156988, Time 605156997, DeltaTick 47, DeltaTime 53
Tick 605157050, Time 605157050, DeltaTick 62, DeltaTime 53
Tick 605157097, Time 605157103, DeltaTick 47, DeltaTime 53
Tick 605157159, Time 605157156, DeltaTick 62, DeltaTime 53
Tick 605157206, Time 605157209, DeltaTick 47, DeltaTime 53
Tick 605157253, Time 605157262, DeltaTick 47, DeltaTime 53
Tick 605157315, Time 605157315, DeltaTick 62, DeltaTime 53
Tick 605157362, Time 605157368, DeltaTick 47, DeltaTime 53
Tick 605157424, Time 605157421, DeltaTick 62, DeltaTime 53
Tick 605157471, Time 605157474, DeltaTick 47, DeltaTime 53
Tick 605157518, Time 605157527, DeltaTick 47, DeltaTime 53
Tick 605157580, Time 605157580, DeltaTick 62, DeltaTime 53
Tick 605157627, Time 605157633, DeltaTick 47, DeltaTime 53
Tick 605157690, Time 605157686, DeltaTick 63, DeltaTime 53
Tick 605157736, Time 605157739, DeltaTick 46, DeltaTime 53
Tick 605157783, Time 605157792, DeltaTick 47, DeltaTime 53
Tick 605157846, Time 605157845, DeltaTick 63, DeltaTime 53
Tick 605157892, Time 605157898, DeltaTick 46, DeltaTime 53
Tick 605157955, Time 605157951, DeltaTick 63, DeltaTime 53
Tick 605158002, Time 605158004, DeltaTick 47, DeltaTime 53
Tick 605158048, Time 605158057, DeltaTick 46, DeltaTime 53
Tick 605158111, Time 605158110, DeltaTick 63, DeltaTime 53
Tick 605158158, Time 605158163, DeltaTick 47, DeltaTime 53
Tick 605158204, Time 605158216, DeltaTick 46, DeltaTime 53
Tick 605158267, Time 605158269, DeltaTick 63, DeltaTime 53
Tick 605158314, Time 605158322, DeltaTick 47, DeltaTime 53
Tick 605158376, Time 605158375, DeltaTick 62, DeltaTime 53
Tick 605158423, Time 605158428, DeltaTick 47, DeltaTime 53
Tick 605158470, Time 605158481, DeltaTick 47, DeltaTime 53
Tick 605158532, Time 605158534, DeltaTick 62, DeltaTime 53
Tick 605158579, Time 605158587, DeltaTick 47, DeltaTime 53
Tick 605158641, Time 605158640, DeltaTick 62, DeltaTime 53
Tick 605158688, Time 605158693, DeltaTick 47, DeltaTime 53
Tick 605158735, Time 605158746, DeltaTick 47, DeltaTime 53
Tick 605158797, Time 605158799, DeltaTick 62, DeltaTime 53
Tick 605158844, Time 605158852, DeltaTick 47, DeltaTime 53
Tick 605158906, Time 605158905, DeltaTick 62, DeltaTime 53
Tick 605158953, Time 605158958, DeltaTick 47, DeltaTime 53
Tick 605159000, Time 605159011, DeltaTick 47, DeltaTime 53
Tick 605159062, Time 605159064, DeltaTick 62, DeltaTime 53
Tick 605159109, Time 605159117, DeltaTick 47, DeltaTime 53
Tick 605159172, Time 605159170, DeltaTick 63, DeltaTime 53
Tick 605159218, Time 605159223, DeltaTick 46, DeltaTime 53
Tick 605159265, Time 605159276, DeltaTick 47, DeltaTime 53
Tick 605159328, Time 605159329, DeltaTick 63, DeltaTime 53
Tick 605159374, Time 605159382, DeltaTick 46, DeltaTime 53
Tick 605159437, Time 605159435, DeltaTick 63, DeltaTime 53
Tick 605159484, Time 605159488, DeltaTick 47, DeltaTime 53
Tick 605159530, Time 605159541, DeltaTick 46, DeltaTime 53
[edit=Luckie]Code-Tags. Mfg, Luckie[/edit]

Edit: Hey Luckie, du hast meinen weiteren Kommentar vergessen :mrgreen: Meine Frage war, ob du testen willst, ob überall die beiden Methoden auseinander laufen? Könnte das vielleicht vom OS abhängen? Denn dann wäre das auch noch ein interessanter Faktor für dich.

Whatever 11. Jan 2010 13:00

Re: timeGetTime
 
Code:
Tick 4177968, Time 4177967, DeltaTick 4177968, DeltaTime 4177967
Tick 4178015, Time 4178020, DeltaTick 47, DeltaTime 53
Tick 4178078, Time 4178074, DeltaTick 63, DeltaTime 54
Tick 4178125, Time 4178128, DeltaTick 47, DeltaTime 54
Tick 4178187, Time 4178182, DeltaTick 62, DeltaTime 54
Tick 4178234, Time 4178235, DeltaTick 47, DeltaTime 53
Tick 4178281, Time 4178289, DeltaTick 47, DeltaTime 54
Tick 4178343, Time 4178343, DeltaTick 62, DeltaTime 54
Tick 4178390, Time 4178396, DeltaTick 47, DeltaTime 53
Tick 4178453, Time 4178450, DeltaTick 63, DeltaTime 54
Tick 4178500, Time 4178504, DeltaTick 47, DeltaTime 54
Tick 4178562, Time 4178558, DeltaTick 62, DeltaTime 54
Tick 4178609, Time 4178611, DeltaTick 47, DeltaTime 53
Tick 4178656, Time 4178665, DeltaTick 47, DeltaTime 54
Tick 4178718, Time 4178719, DeltaTick 62, DeltaTime 54
Tick 4178765, Time 4178772, DeltaTick 47, DeltaTime 53
Tick 4178828, Time 4178826, DeltaTick 63, DeltaTime 54
Tick 4178875, Time 4178880, DeltaTick 47, DeltaTime 54
Tick 4178937, Time 4178934, DeltaTick 62, DeltaTime 54
Tick 4178984, Time 4178987, DeltaTick 47, DeltaTime 53
Tick 4179046, Time 4179041, DeltaTick 62, DeltaTime 54
Tick 4179093, Time 4179095, DeltaTick 47, DeltaTime 54
Tick 4179140, Time 4179148, DeltaTick 47, DeltaTime 53
Tick 4179203, Time 4179202, DeltaTick 63, DeltaTime 54
Tick 4179250, Time 4179256, DeltaTick 47, DeltaTime 54
Tick 4179312, Time 4179310, DeltaTick 62, DeltaTime 54
Tick 4179359, Time 4179363, DeltaTick 47, DeltaTime 53
Tick 4179421, Time 4179417, DeltaTick 62, DeltaTime 54
Tick 4179468, Time 4179471, DeltaTick 47, DeltaTime 54
Tick 4179515, Time 4179524, DeltaTick 47, DeltaTime 53
Tick 4179578, Time 4179578, DeltaTick 63, DeltaTime 54
Tick 4179625, Time 4179632, DeltaTick 47, DeltaTime 54
Tick 4179687, Time 4179686, DeltaTick 62, DeltaTime 54
Tick 4179734, Time 4179739, DeltaTick 47, DeltaTime 53
Tick 4179796, Time 4179793, DeltaTick 62, DeltaTime 54
Tick 4179843, Time 4179847, DeltaTick 47, DeltaTime 54
Tick 4179906, Time 4179900, DeltaTick 63, DeltaTime 53
Tick 4179953, Time 4179954, DeltaTick 47, DeltaTime 54
Tick 4180000, Time 4180008, DeltaTick 47, DeltaTime 54
Tick 4180062, Time 4180062, DeltaTick 62, DeltaTime 54
Tick 4180109, Time 4180115, DeltaTick 47, DeltaTime 53
Tick 4180171, Time 4180169, DeltaTick 62, DeltaTime 54
Tick 4180218, Time 4180223, DeltaTick 47, DeltaTime 54
Tick 4180281, Time 4180276, DeltaTick 63, DeltaTime 53
Tick 4180328, Time 4180330, DeltaTick 47, DeltaTime 54
Tick 4180375, Time 4180384, DeltaTick 47, DeltaTime 54
Tick 4180437, Time 4180437, DeltaTick 62, DeltaTime 53
Tick 4180484, Time 4180491, DeltaTick 47, DeltaTime 54
Tick 4180546, Time 4180545, DeltaTick 62, DeltaTime 54
Tick 4180593, Time 4180599, DeltaTick 47, DeltaTime 54

Luckie 11. Jan 2010 13:00

Re: timeGetTime
 
Ist schon interessant. Bei euch beiden, Daniel und shark, variiert das Delta von GetTickcount zwischen 47 und 62 Millisekunden. Bei shark bleibt das Delta von timeGetTime konstant bei 53 Millisekunden, während es bei Daniel und mir zwischen 53 und 54 Millisekunden variiert.

alleinherrscher 11. Jan 2010 13:02

Re: timeGetTime
 
MSDN: Windows NT/2000: The default precision of the timeGetTime function can be five milliseconds or more, depending on the machine. You can use the timeBeginPeriod and timeEndPeriod functions to increase the precision of timeGetTime. If you do so, the minimum difference between successive values returned by timeGetTime can be as large as the minimum period value set using timeBeginPeriod and timeEndPeriod. Use the QueryPerformanceCounter and QueryPerformanceFrequency functions to measure short time intervals at a high resolution...

The resolution of the GetTickCount function is limited to the resolution of the system timer, which is typically in the range of 10 milliseconds to 16 milliseconds. The resolution of the GetTickCount function is also affected by adjustments made by the GetSystemTimeAdjustment function.

[edit]

Mein DeltaTick schwankt zwischen 63 und 46, DeltaTime ist immer exakt 53 (@ Corei7 965 EE, Vista 32 Bits)

[/edit]

s.h.a.r.k 11. Jan 2010 13:03

Re: timeGetTime
 
Siehe noch die Änderung bei meinem obigen Beitrag!

Falls es weiterhilft: Window 7 Prof. 64 Bit, Quad Core CPU Q6600. (Sonst wüsste ich nicht wovon die Methoden noch abhängig sein könnten.

markus5766h 11. Jan 2010 13:06

Re: timeGetTime
 
Hallo,
mein Ergebnis :

Tick 1954583, Time 1954583, DeltaTick 1954583, DeltaTime 1954583
Tick 1954645, Time 1954645, DeltaTick 62, DeltaTime 62
Tick 1954708, Time 1954707, DeltaTick 63, DeltaTime 62
Tick 1954770, Time 1954770, DeltaTick 62, DeltaTime 63
Tick 1954832, Time 1954832, DeltaTick 62, DeltaTime 62
Tick 1954895, Time 1954895, DeltaTick 63, DeltaTime 63
Tick 1954957, Time 1954957, DeltaTick 62, DeltaTime 62
Tick 1955020, Time 1955019, DeltaTick 63, DeltaTime 62
Tick 1955082, Time 1955082, DeltaTick 62, DeltaTime 63
Tick 1955144, Time 1955144, DeltaTick 62, DeltaTime 62
Tick 1955207, Time 1955207, DeltaTick 63, DeltaTime 63
Tick 1955269, Time 1955269, DeltaTick 62, DeltaTime 62
Tick 1955332, Time 1955331, DeltaTick 63, DeltaTime 62
Tick 1955394, Time 1955394, DeltaTick 62, DeltaTime 63
Tick 1955456, Time 1955456, DeltaTick 62, DeltaTime 62
Tick 1955519, Time 1955519, DeltaTick 63, DeltaTime 63
Tick 1955581, Time 1955581, DeltaTick 62, DeltaTime 62
Tick 1955644, Time 1955643, DeltaTick 63, DeltaTime 62
Tick 1955706, Time 1955706, DeltaTick 62, DeltaTime 63
Tick 1955768, Time 1955768, DeltaTick 62, DeltaTime 62
Tick 1955831, Time 1955831, DeltaTick 63, DeltaTime 63
Tick 1955893, Time 1955893, DeltaTick 62, DeltaTime 62
Tick 1955956, Time 1955955, DeltaTick 63, DeltaTime 62
Tick 1956018, Time 1956018, DeltaTick 62, DeltaTime 63
Tick 1956080, Time 1956080, DeltaTick 62, DeltaTime 62
Tick 1956143, Time 1956143, DeltaTick 63, DeltaTime 63
Tick 1956205, Time 1956205, DeltaTick 62, DeltaTime 62
Tick 1956268, Time 1956267, DeltaTick 63, DeltaTime 62
Tick 1956330, Time 1956330, DeltaTick 62, DeltaTime 63
Tick 1956392, Time 1956392, DeltaTick 62, DeltaTime 62
Tick 1956455, Time 1956455, DeltaTick 63, DeltaTime 63
Tick 1956517, Time 1956517, DeltaTick 62, DeltaTime 62
Tick 1956580, Time 1956579, DeltaTick 63, DeltaTime 62
Tick 1956642, Time 1956642, DeltaTick 62, DeltaTime 63
Tick 1956704, Time 1956704, DeltaTick 62, DeltaTime 62
Tick 1956767, Time 1956767, DeltaTick 63, DeltaTime 63
Tick 1956829, Time 1956829, DeltaTick 62, DeltaTime 62
Tick 1956892, Time 1956891, DeltaTick 63, DeltaTime 62
Tick 1956954, Time 1956954, DeltaTick 62, DeltaTime 63
Tick 1957016, Time 1957016, DeltaTick 62, DeltaTime 62
Tick 1957079, Time 1957079, DeltaTick 63, DeltaTime 63
Tick 1957141, Time 1957141, DeltaTick 62, DeltaTime 62
Tick 1957204, Time 1957203, DeltaTick 63, DeltaTime 62
Tick 1957266, Time 1957266, DeltaTick 62, DeltaTime 63
Tick 1957328, Time 1957328, DeltaTick 62, DeltaTime 62
Tick 1957391, Time 1957391, DeltaTick 63, DeltaTime 63
Tick 1957453, Time 1957453, DeltaTick 62, DeltaTime 62
Tick 1957516, Time 1957515, DeltaTick 63, DeltaTime 62
Tick 1957578, Time 1957578, DeltaTick 62, DeltaTime 63
Tick 1957640, Time 1957640, DeltaTick 62, DeltaTime 62


AMD-Dual-Core, 64bit, 3000Mhz @ 2600MHz
Win 7 Ultimate 64-bit
4Gb RAM

Luckie 11. Jan 2010 13:09

Re: timeGetTime
 
@alleinherscher: Der text ist mir bekannt.

@markus: Hast du an dem Code was geändert oder hast du gerade einen sehr rechenintensiven Prozess laufen? Obwohl das kann es auch nicht sein, da GetTickcount bei dir auch sehr konstante Werte zeigt.

Whatever 11. Jan 2010 13:10

Re: timeGetTime
 
Falls das System von Interesse ist:
AMD Phenom X4 9950 (4x 2600Mhz)
Windows XP Home

alleinherrscher 11. Jan 2010 13:13

Re: timeGetTime
 
@Luckie: Was genau versuchst du eigentlich rauszufinden. Die "Messwerte" von den Jungs hier sind doch alle in dem von MS angegebenen Bereich ;-)

markus5766h 11. Jan 2010 13:15

Re: timeGetTime
 
@Luckie

hab' ne Festplatte formatiert
weitere laufende Prozesse
2*IE8(64 bit)
Delphi 7 (für schon wieder was anderes)
paint.net
Outlook (Office 2007)

und der übliche System-Kleinkram

Luckie 11. Jan 2010 13:19

Re: timeGetTime
 
Ich versuche gar nichts rauszufinden. Ich hatte eben bei mir nur sehr glatte Ergebnisse bekommen und wollte wissen, ob das Zufall ist oder nicht.

Reinhardtinho 11. Jan 2010 13:21

Re: timeGetTime
 
Code:
Tick 426262623, Time 426262610, DeltaTick 426262623, DeltaTime 426262610
Tick 426262669, Time 426262663, DeltaTick 46, DeltaTime 53
Tick 426262716, Time 426262716, DeltaTick 47, DeltaTime 53
Tick 426262779, Time 426262769, DeltaTick 63, DeltaTime 53
Tick 426262825, Time 426262822, DeltaTick 46, DeltaTime 53
Tick 426262888, Time 426262875, DeltaTick 63, DeltaTime 53
Tick 426262935, Time 426262928, DeltaTick 47, DeltaTime 53
Tick 426262981, Time 426262981, DeltaTick 46, DeltaTime 53
Tick 426263044, Time 426263034, DeltaTick 63, DeltaTime 53
Tick 426263091, Time 426263087, DeltaTick 47, DeltaTime 53
Tick 426263137, Time 426263140, DeltaTick 46, DeltaTime 53
Tick 426263200, Time 426263193, DeltaTick 63, DeltaTime 53
Tick 426263247, Time 426263246, DeltaTick 47, DeltaTime 53
Tick 426263309, Time 426263299, DeltaTick 62, DeltaTime 53
Tick 426263356, Time 426263352, DeltaTick 47, DeltaTime 53
Tick 426263403, Time 426263405, DeltaTick 47, DeltaTime 53
Tick 426263465, Time 426263458, DeltaTick 62, DeltaTime 53
Tick 426263512, Time 426263511, DeltaTick 47, DeltaTime 53
Tick 426263574, Time 426263564, DeltaTick 62, DeltaTime 53
Tick 426263621, Time 426263617, DeltaTick 47, DeltaTime 53
Tick 426263668, Time 426263670, DeltaTick 47, DeltaTime 53
Tick 426263730, Time 426263723, DeltaTick 62, DeltaTime 53
Tick 426263777, Time 426263776, DeltaTick 47, DeltaTime 53
Tick 426263839, Time 426263829, DeltaTick 62, DeltaTime 53
Tick 426263886, Time 426263882, DeltaTick 47, DeltaTime 53
Tick 426263933, Time 426263935, DeltaTick 47, DeltaTime 53
Tick 426263995, Time 426263988, DeltaTick 62, DeltaTime 53
Tick 426264042, Time 426264041, DeltaTick 47, DeltaTime 53
Tick 426264105, Time 426264094, DeltaTick 63, DeltaTime 53
Tick 426264151, Time 426264147, DeltaTick 46, DeltaTime 53
Tick 426264198, Time 426264200, DeltaTick 47, DeltaTime 53
Tick 426264261, Time 426264253, DeltaTick 63, DeltaTime 53
Tick 426264307, Time 426264306, DeltaTick 46, DeltaTime 53
Tick 426264370, Time 426264359, DeltaTick 63, DeltaTime 53
Tick 426264417, Time 426264412, DeltaTick 47, DeltaTime 53
Tick 426264463, Time 426264465, DeltaTick 46, DeltaTime 53
Tick 426264526, Time 426264518, DeltaTick 63, DeltaTime 53
Tick 426264573, Time 426264571, DeltaTick 47, DeltaTime 53
Tick 426264635, Time 426264624, DeltaTick 62, DeltaTime 53
Tick 426264682, Time 426264677, DeltaTick 47, DeltaTime 53
Tick 426264729, Time 426264730, DeltaTick 47, DeltaTime 53
Tick 426264791, Time 426264783, DeltaTick 62, DeltaTime 53
Tick 426264838, Time 426264836, DeltaTick 47, DeltaTime 53
Tick 426264900, Time 426264889, DeltaTick 62, DeltaTime 53
Tick 426264947, Time 426264942, DeltaTick 47, DeltaTime 53
Tick 426264994, Time 426264995, DeltaTick 47, DeltaTime 53
Tick 426265056, Time 426265048, DeltaTick 62, DeltaTime 53
Tick 426265103, Time 426265101, DeltaTick 47, DeltaTime 53
Tick 426265165, Time 426265154, DeltaTick 62, DeltaTime 53
Tick 426265212, Time 426265207, DeltaTick 47, DeltaTime 53

ChrisE 11. Jan 2010 13:33

Re: timeGetTime
 
Code:
Tick 8977483, Time 8977485, DeltaTick 8977483, DeltaTime 8977485
Tick 8977529, Time 8977538, DeltaTick 46, DeltaTime 53
Tick 8977592, Time 8977591, DeltaTick 63, DeltaTime 53
Tick 8977639, Time 8977644, DeltaTick 47, DeltaTime 53
Tick 8977685, Time 8977697, DeltaTick 46, DeltaTime 53
Tick 8977748, Time 8977750, DeltaTick 63, DeltaTime 53
Tick 8977795, Time 8977803, DeltaTick 47, DeltaTime 53
Tick 8977857, Time 8977856, DeltaTick 62, DeltaTime 53
Tick 8977904, Time 8977909, DeltaTick 47, DeltaTime 53
Tick 8977951, Time 8977962, DeltaTick 47, DeltaTime 53
Tick 8978013, Time 8978015, DeltaTick 62, DeltaTime 53
Tick 8978060, Time 8978068, DeltaTick 47, DeltaTime 53
Tick 8978122, Time 8978121, DeltaTick 62, DeltaTime 53
Tick 8978169, Time 8978174, DeltaTick 47, DeltaTime 53
Tick 8978216, Time 8978227, DeltaTick 47, DeltaTime 53
Tick 8978278, Time 8978280, DeltaTick 62, DeltaTime 53
Tick 8978325, Time 8978333, DeltaTick 47, DeltaTime 53
Tick 8978387, Time 8978386, DeltaTick 62, DeltaTime 53
Tick 8978434, Time 8978439, DeltaTick 47, DeltaTime 53
Tick 8978481, Time 8978492, DeltaTick 47, DeltaTime 53
Tick 8978543, Time 8978545, DeltaTick 62, DeltaTime 53
Tick 8978590, Time 8978598, DeltaTick 47, DeltaTime 53
Tick 8978653, Time 8978651, DeltaTick 63, DeltaTime 53
Tick 8978699, Time 8978704, DeltaTick 46, DeltaTime 53
Tick 8978746, Time 8978757, DeltaTick 47, DeltaTime 53
Tick 8978809, Time 8978810, DeltaTick 63, DeltaTime 53
Tick 8978855, Time 8978863, DeltaTick 46, DeltaTime 53
Tick 8978918, Time 8978916, DeltaTick 63, DeltaTime 53
Tick 8978965, Time 8978969, DeltaTick 47, DeltaTime 53
Tick 8979011, Time 8979022, DeltaTick 46, DeltaTime 53
Tick 8979074, Time 8979075, DeltaTick 63, DeltaTime 53
Tick 8979121, Time 8979128, DeltaTick 47, DeltaTime 53
Tick 8979183, Time 8979181, DeltaTick 62, DeltaTime 53
Tick 8979230, Time 8979234, DeltaTick 47, DeltaTime 53
Tick 8979277, Time 8979287, DeltaTick 47, DeltaTime 53
Tick 8979339, Time 8979340, DeltaTick 62, DeltaTime 53
Tick 8979386, Time 8979393, DeltaTick 47, DeltaTime 53
Tick 8979448, Time 8979446, DeltaTick 62, DeltaTime 53
Tick 8979495, Time 8979499, DeltaTick 47, DeltaTime 53
Tick 8979542, Time 8979552, DeltaTick 47, DeltaTime 53
Tick 8979604, Time 8979605, DeltaTick 62, DeltaTime 53
Tick 8979651, Time 8979658, DeltaTick 47, DeltaTime 53
Tick 8979713, Time 8979711, DeltaTick 62, DeltaTime 53
Tick 8979760, Time 8979764, DeltaTick 47, DeltaTime 53
Tick 8979807, Time 8979817, DeltaTick 47, DeltaTime 53
Tick 8979869, Time 8979870, DeltaTick 62, DeltaTime 53
Tick 8979916, Time 8979923, DeltaTick 47, DeltaTime 53
Tick 8979979, Time 8979976, DeltaTick 63, DeltaTime 53
Tick 8980025, Time 8980029, DeltaTick 46, DeltaTime 53
Tick 8980072, Time 8980082, DeltaTick 47, DeltaTime 53
System:
WinVista Ultimate 32Bit SP2
AMD Phenom II X4 940
Delphi 2007

Greez, Chris

p80286 11. Jan 2010 13:56

Re: timeGetTime
 
Auch von mir ein Ergebnis:

Tick 16787359, Time 16787359, DeltaTick 16787359, DeltaTime 16787359
Tick 16787421, Time 16787421, DeltaTick 62, DeltaTime 62
Tick 16787484, Time 16787484, DeltaTick 63, DeltaTime 63
Tick 16787546, Time 16787546, DeltaTick 62, DeltaTime 62
Tick 16787609, Time 16787609, DeltaTick 63, DeltaTime 63
Tick 16787671, Time 16787671, DeltaTick 62, DeltaTime 62
Tick 16787734, Time 16787734, DeltaTick 63, DeltaTime 63
Tick 16787796, Time 16787796, DeltaTick 62, DeltaTime 62
Tick 16787859, Time 16787859, DeltaTick 63, DeltaTime 63
Tick 16787921, Time 16787921, DeltaTick 62, DeltaTime 62
Tick 16787984, Time 16787984, DeltaTick 63, DeltaTime 63
Tick 16788046, Time 16788046, DeltaTick 62, DeltaTime 62
Tick 16788109, Time 16788109, DeltaTick 63, DeltaTime 63
Tick 16788171, Time 16788171, DeltaTick 62, DeltaTime 62
Tick 16788234, Time 16788234, DeltaTick 63, DeltaTime 63
Tick 16788296, Time 16788296, DeltaTick 62, DeltaTime 62
Tick 16788359, Time 16788359, DeltaTick 63, DeltaTime 63
Tick 16788421, Time 16788421, DeltaTick 62, DeltaTime 62
Tick 16788484, Time 16788484, DeltaTick 63, DeltaTime 63
Tick 16788546, Time 16788546, DeltaTick 62, DeltaTime 62
Tick 16788609, Time 16788609, DeltaTick 63, DeltaTime 63
Tick 16788671, Time 16788671, DeltaTick 62, DeltaTime 62
Tick 16788734, Time 16788734, DeltaTick 63, DeltaTime 63
Tick 16788796, Time 16788796, DeltaTick 62, DeltaTime 62
Tick 16788859, Time 16788859, DeltaTick 63, DeltaTime 63
Tick 16788921, Time 16788921, DeltaTick 62, DeltaTime 62
Tick 16788984, Time 16788984, DeltaTick 63, DeltaTime 63
Tick 16789046, Time 16789046, DeltaTick 62, DeltaTime 62
Tick 16789109, Time 16789109, DeltaTick 63, DeltaTime 63
Tick 16789171, Time 16789171, DeltaTick 62, DeltaTime 62
Tick 16789234, Time 16789234, DeltaTick 63, DeltaTime 63
Tick 16789296, Time 16789296, DeltaTick 62, DeltaTime 62
Tick 16789359, Time 16789359, DeltaTick 63, DeltaTime 63
Tick 16789421, Time 16789421, DeltaTick 62, DeltaTime 62
Tick 16789484, Time 16789484, DeltaTick 63, DeltaTime 63
Tick 16789546, Time 16789546, DeltaTick 62, DeltaTime 62
Tick 16789609, Time 16789609, DeltaTick 63, DeltaTime 63
Tick 16789671, Time 16789671, DeltaTick 62, DeltaTime 62
Tick 16789734, Time 16789734, DeltaTick 63, DeltaTime 63
Tick 16789796, Time 16789796, DeltaTick 62, DeltaTime 62
Tick 16789859, Time 16789859, DeltaTick 63, DeltaTime 63
Tick 16789921, Time 16789921, DeltaTick 62, DeltaTime 62
Tick 16789984, Time 16789984, DeltaTick 63, DeltaTime 63
Tick 16790046, Time 16790046, DeltaTick 62, DeltaTime 62
Tick 16790109, Time 16790109, DeltaTick 63, DeltaTime 63
Tick 16790171, Time 16790171, DeltaTick 62, DeltaTime 62
Tick 16790234, Time 16790234, DeltaTick 63, DeltaTime 63
Tick 16790296, Time 16790296, DeltaTick 62, DeltaTime 62
Tick 16790359, Time 16790359, DeltaTick 63, DeltaTime 63
Tick 16790421, Time 16790421, DeltaTick 62, DeltaTime 62

Pentium(R) Dual-Core CPU E5200 @ 2.50GHz
Xp sp3
Delphi7

Ich hab noch einen Nachtrag (D2006 Prof):
Tick 17449515, Time 17449501, DeltaTick 17449515, DeltaTime 17449501
Tick 17449562, Time 17449555, DeltaTick 47, DeltaTime 54
Tick 17449609, Time 17449609, DeltaTick 47, DeltaTime 54
Tick 17449671, Time 17449663, DeltaTick 62, DeltaTime 54
Tick 17449718, Time 17449716, DeltaTick 47, DeltaTime 53
Tick 17449781, Time 17449770, DeltaTick 63, DeltaTime 54
Tick 17449828, Time 17449824, DeltaTick 47, DeltaTime 54
Tick 17449890, Time 17449877, DeltaTick 62, DeltaTime 53
Tick 17449937, Time 17449931, DeltaTick 47, DeltaTime 54
Tick 17449984, Time 17449985, DeltaTick 47, DeltaTime 54
Tick 17450046, Time 17450039, DeltaTick 62, DeltaTime 54
Tick 17450093, Time 17450092, DeltaTick 47, DeltaTime 53
Tick 17450156, Time 17450146, DeltaTick 63, DeltaTime 54
Tick 17450203, Time 17450200, DeltaTick 47, DeltaTime 54
Tick 17450265, Time 17450253, DeltaTick 62, DeltaTime 53
Tick 17450312, Time 17450307, DeltaTick 47, DeltaTime 54
Tick 17450375, Time 17450361, DeltaTick 63, DeltaTime 54
Tick 17450421, Time 17450415, DeltaTick 46, DeltaTime 54
Tick 17450468, Time 17450468, DeltaTick 47, DeltaTime 53
Tick 17450531, Time 17450522, DeltaTick 63, DeltaTime 54
Tick 17450578, Time 17450576, DeltaTick 47, DeltaTime 54
Tick 17450640, Time 17450629, DeltaTick 62, DeltaTime 53
Tick 17450687, Time 17450683, DeltaTick 47, DeltaTime 54
Tick 17450750, Time 17450737, DeltaTick 63, DeltaTime 54
Tick 17450796, Time 17450791, DeltaTick 46, DeltaTime 54
Tick 17450843, Time 17450844, DeltaTick 47, DeltaTime 53
Tick 17450906, Time 17450898, DeltaTick 63, DeltaTime 54
Tick 17450953, Time 17450952, DeltaTick 47, DeltaTime 54
Tick 17451015, Time 17451005, DeltaTick 62, DeltaTime 53
Tick 17451062, Time 17451059, DeltaTick 47, DeltaTime 54
Tick 17451125, Time 17451113, DeltaTick 63, DeltaTime 54
Tick 17451171, Time 17451166, DeltaTick 46, DeltaTime 53
Tick 17451234, Time 17451220, DeltaTick 63, DeltaTime 54
Tick 17451281, Time 17451274, DeltaTick 47, DeltaTime 54
Tick 17451328, Time 17451328, DeltaTick 47, DeltaTime 54
Tick 17451390, Time 17451381, DeltaTick 62, DeltaTime 53
Tick 17451437, Time 17451435, DeltaTick 47, DeltaTime 54
Tick 17451500, Time 17451489, DeltaTick 63, DeltaTime 54
Tick 17451546, Time 17451542, DeltaTick 46, DeltaTime 53
Tick 17451609, Time 17451596, DeltaTick 63, DeltaTime 54
Tick 17451656, Time 17451650, DeltaTick 47, DeltaTime 54
Tick 17451703, Time 17451704, DeltaTick 47, DeltaTime 54
Tick 17451765, Time 17451757, DeltaTick 62, DeltaTime 53
Tick 17451812, Time 17451811, DeltaTick 47, DeltaTime 54
Tick 17451875, Time 17451865, DeltaTick 63, DeltaTime 54
Tick 17451921, Time 17451918, DeltaTick 46, DeltaTime 53
Tick 17451984, Time 17451972, DeltaTick 63, DeltaTime 54
Tick 17452031, Time 17452026, DeltaTick 47, DeltaTime 54
Tick 17452093, Time 17452080, DeltaTick 62, DeltaTime 54
Tick 17452140, Time 17452133, DeltaTick 47, DeltaTime 53

Gruß
K-H

Luckie 11. Jan 2010 14:01

Re: timeGetTime
 
Ok, ich glaube das reicht mir erstmal an Ergebnissen. Als Fazit kann kann man ziehen, dass timeGetTime stabilere Werte liefert als GetTickcount. Das heißt, wenn man ein Ereignis möglichst genau timen will, sollte man auf timeGetTime zurückgreifen.

p80286 11. Jan 2010 14:29

Re: timeGetTime
 
Meinst Du?

Wenn ich mir die Unterschiede zwischen D2006 und D7 anschaue, werde ich das Gefühl nicht los, das irgendetwas da nicht zuverlässig arbeitet. Auf dem gleichen Rechner 10 Millisec Abweichung finde ich schon heftig.

Gruß
K-H

s.h.a.r.k 11. Jan 2010 14:39

Re: timeGetTime
 
Das habe ich mir auch gedacht, als ich deine Wert angeschaut habe :gruebel:

Aber intern kann Delphi doch fast nichts anderes machen, als auf die entsprechende Windows-Funktion zu verweisen und somit verstehe ich den Unterschied nicht so recht.

Luckie 11. Jan 2010 15:05

Re: timeGetTime
 
Zitat:

Zitat von p80286
Wenn ich mir die Unterschiede zwischen D2006 und D7 anschaue, werde ich das Gefühl nicht los, das irgendetwas da nicht zuverlässig arbeitet. Auf dem gleichen Rechner 10 Millisec Abweichung finde ich schon heftig.

In der Tat, das ist schon etwas seltsam. Allerdings bezog ich mich auf GetTickcount und timeGetTime.

p80286 11. Jan 2010 15:58

Re: timeGetTime
 
Ich hab nochmal, unter veränderten Bedingungen gemessen:

Tick 23725718, Time 23725718, DeltaTick 78, DeltaTime 80
Tick 23725796, Time 23725798, DeltaTick 78, DeltaTime 80
Tick 23725875, Time 23725876, DeltaTick 79, DeltaTime 78
Tick 23725953, Time 23725953, DeltaTick 78, DeltaTime 77
Tick 23726031, Time 23726029, DeltaTick 78, DeltaTime 76
Tick 23726109, Time 23726104, DeltaTick 78, DeltaTime 75
Tick 23726187, Time 23726178, DeltaTick 78, DeltaTime 74
Tick 23726250, Time 23726252, DeltaTick 63, DeltaTime 74
Tick 23726328, Time 23726324, DeltaTick 78, DeltaTime 72
Tick 23726390, Time 23726395, DeltaTick 62, DeltaTime 71
Tick 23726468, Time 23726466, DeltaTick 78, DeltaTime 71
Tick 23726531, Time 23726535, DeltaTick 63, DeltaTime 69
Tick 23726609, Time 23726603, DeltaTick 78, DeltaTime 68
Tick 23726671, Time 23726671, DeltaTick 62, DeltaTime 68
Tick 23726734, Time 23726737, DeltaTick 63, DeltaTime 66
Tick 23726796, Time 23726802, DeltaTick 62, DeltaTime 65
Tick 23726875, Time 23726867, DeltaTick 79, DeltaTime 65
Tick 23726937, Time 23726930, DeltaTick 62, DeltaTime 63
Tick 23727000, Time 23726994, DeltaTick 63, DeltaTime 64
Tick 23727062, Time 23727056, DeltaTick 62, DeltaTime 62
Tick 23727125, Time 23727118, DeltaTick 63, DeltaTime 62
Tick 23727187, Time 23727178, DeltaTick 62, DeltaTime 60
Tick 23727234, Time 23727238, DeltaTick 47, DeltaTime 60
Tick 23727296, Time 23727297, DeltaTick 62, DeltaTime 59
Tick 23727359, Time 23727354, DeltaTick 63, DeltaTime 57
Tick 23727406, Time 23727411, DeltaTick 47, DeltaTime 57
Tick 23727468, Time 23727467, DeltaTick 62, DeltaTime 56
Tick 23727515, Time 23727521, DeltaTick 47, DeltaTime 54
Tick 23727578, Time 23727575, DeltaTick 63, DeltaTime 54
Tick 23727625, Time 23727628, DeltaTick 47, DeltaTime 53
Tick 23727687, Time 23727679, DeltaTick 62, DeltaTime 51
Tick 23727734, Time 23727730, DeltaTick 47, DeltaTime 51
Tick 23727781, Time 23727780, DeltaTick 47, DeltaTime 50
Tick 23727828, Time 23727829, DeltaTick 47, DeltaTime 49
Tick 23727875, Time 23727877, DeltaTick 47, DeltaTime 48
Tick 23727921, Time 23727924, DeltaTick 46, DeltaTime 47
Tick 23727968, Time 23727969, DeltaTick 47, DeltaTime 45
Tick 23728015, Time 23728014, DeltaTick 47, DeltaTime 45
Tick 23728062, Time 23728058, DeltaTick 47, DeltaTime 44
Tick 23728109, Time 23728100, DeltaTick 47, DeltaTime 42
Tick 23728140, Time 23728141, DeltaTick 31, DeltaTime 41
Tick 23728187, Time 23728181, DeltaTick 47, DeltaTime 40
Tick 23728218, Time 23728220, DeltaTick 31, DeltaTime 39
Tick 23728265, Time 23728259, DeltaTick 47, DeltaTime 39

wobei ich folgende Änderung eingebaut habe:
Delphi-Quellcode:
Sleep(i+30);
Dec(i);
daraus würde ich schließen, unter 100Millisec ist Timegettime genauer als getTickCount.

Was die Abweichung d2006/D7 angeht würde ich es auf die implementierung von Writeln / Format und ggf. abweichende Compileroptionen schieben (Bin mir da zwar keiner Schuld bewußt aber könnte ja sein)

Gruß
K-H

markus5766h 11. Jan 2010 16:51

Re: timeGetTime
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
als Konsolenanwendung waren meine "Tick"-Werte schön konstant,
als Windows-Anwendung variiren sie stark, siehe Anhang

Delphi-Quellcode:
uses
  Windows, mmsystem, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    Grid1: TStringGrid;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    Times : array[1..4, 0..50] of Cardinal;
    LastTick, LastTime : Cardinal;
    procedure SetTimes;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SetTimes;
var
 i : Integer;
begin
 LastTick := 0;
 LastTime := 0;
 i := 50;

 while (i > 0) do
  begin
   Times[1, i] := GetTickCount;
   Times[2, i] := TimeGetTime;
   Times[3, i] := Times[1, i] - LastTick;
   Times[4, i] := Times[2, i] - LastTime;
   LastTick := Times[1, i];
   LastTime := Times[2, i];
   Sleep(53);
   Dec(i);
  end; // end i > 0
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 c, r : Integer;
begin
SetTimes;
Grid1.Cells[1, 0] := 'Tick';
Grid1.Cells[2, 0] := 'Time';
Grid1.Cells[3, 0] := 'Tick-LastTick';
Grid1.Cells[4, 0] := 'Time-LastTime';

for r := 0 to 50 do
 begin
  Grid1.Cells[0, r+1] := IntToStr(r);
   for c := 1 to 4 do
    begin
     Grid1.Cells[c, r+1] := IntToStr(Times[c, 50-r]);
    end;
 end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz