j'ai également un problème avec un format d'heure.
Je veux créer un fichier de trace avec date et heure
mais j'aimerais avoir une précision à la millisecondes pour
ce qui est de l'heure.
J'ai pas trouvé le format qui va bien
Merci d'avance.
j'ai également un problème avec un format d'heure.
Je veux créer un fichier de trace avec date et heure
mais j'aimerais avoir une précision à la millisecondes pour
ce qui est de l'heure.
J'ai pas trouvé le format qui va bien
Merci d'avance.
Il faut utiliser une variable systemtime avec getlocaltime.
Peux tu en dire plus? J'ai été un peu à la pêche aux info, mais n'ai rien trouvé qui me soit exploitable, tout étant en anglais.Envoyé par DarkVader
Merci
Praticiels: http://jacma.developpez.com.
la methode gettick count est trés apropriée, même si elle ne permet pas de donner l'heure, il suffit de se caller sur un changement de seconde de l'horloge windows.
par contre, il est vrai qu'on ne peut palier au réglage de l'heure windows.
salut![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Public Type SystemTime wYear As Integer wMonth As Integer wDayOfWeek As Integer wDay As Integer wHour As Integer wMinute As Integer wSecond As Integer wMilliseconds As Integer End Type Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SystemTime) Public Function LocalTime() Dim Now0 As SystemTime GetLocalTime Now0 LocalTime = format(Now0.wHour, "00") & ":" & format(Now0.wMinute, "00") & ":" & format(Now0.wSecond, "00") & " " & format(Now0.wMilliseconds, "000") End Function
à propos de quoi?Envoyé par DarkVader
le methode gettick count est adéquate s'il veut mesurer une courte durée, la methode getlocaltime est mieux pour en mesurer une apres un redémarage ou autre.
Autant pour moi - pour la précédente observation par contre :
- getTickcount est d'une précision bien moindre que QueryPerformanceCounter pour calculer un intervale précis (>1000)
- pourquoi après un redémarrage !
pourquoi donc? gettickcount à une précison d'une miliseconde tout comme getlocaltimeEnvoyé par DarkVader
par-ce qu'alors que la methode gettickcount conpte le tombre de seconde depuis le redémarage, ce qui est pratique pour calculer une durée lorsque l'ordinateur est allumé (une simple différence suffit), getlocaltime peut être repris apres redémarage et avoir une différence exacte.Envoyé par DarkVader
salut![]()
QueryPerformanceCounter fournit un compteur de l'ordre du 1/1 000 000 sec (voir moins) alors que Gettickcount n'est précis qu'au 1/1000e sec
il est donc préférable pour apprécier la performance d'une routine rapide même si gettickcount est souvent très suffisant.
Bon, on va pas troller 107 ans.
Pas dans le code fourni plus haut évidemment mais dans le cadre d'optimisation de routines -
pour exemple, amuses-toi à mesurer avec gettickcount les tests suivants
en faisant varier k sur 100, 1000, 10 000
avec QueryPerformanceCounter j'obtiens
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim x As Long, k as long, a As Long For x = 1 To k a = a + 1 Next
100 => 31/1 000 000 ±2
1 000 => 68/ 1 000 000 ±1.5
10 000 => 489/1 000 000 ±52
en mode interprêté soit une répartition parfaitement linéaire .
Et toi avec gettickcount ?
t'es bien capable d'avoir autre chose que 1 par moment lol
bon alors après une série de test, force est de constater que la précision est de 7 ms:
pour 1 000: 0 ms tout le temps
pour 10 000: 0 ms tout le temps
pour 100 000: entre 0 et 16
pour 1 000 000 :entre 47 et 64
pour 10 000 000 :entre 531 et 547
bref, je pensait que c'étais précis à la ms mais finalement non.
au fait, pourraist-tu me donner la methode d'apel du QueryPerformanceCounter (ou du moin la dll: c'et un kernel 32 ou non?)
salut![]()
Partager