Chrono "QueryPerformanceCounter" ne fonctionne pas [Résolu]

tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 25 oct. 2006 à 19:43 - Dernière réponse : Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention
- 28 oct. 2006 à 00:55
Bonjour,

Je tente de chronométrer un code pour en améliorer la performance, mais je n'y arrive pas en utilisant l'API QueryPerformanceCounter de Kernel32.

Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long
 
Public Function Start()
    QueryPerformanceCounter depart
End Function

Il renvoit toujours 0 dans la variable "depart". Quelqu'un sait-il pourquoi ?

Merci

Yann
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 26 oct. 2006 à 21:38
3
Merci
re salut,
QueryPerformance ne fonctionne que sur les processeurs compatibles Intel Pentium
donc si pas disponible chez toi, tu peux pas l'utiliser
j'ai cherché d'autres chrono haute performance mais ils sont tous basés sur le même principe
il te reste GetTickcount à la milliseconde près

Daniel

Merci Gobillot 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

Commenter la réponse de Gobillot
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 25 oct. 2006 à 19:58
0
Merci
Salut

il faut tester pour savoir si elle est disponible ou pas


Private Declare Function QueryPerformanceFrequency Lib "kernel32" (X As Currency) As Long


Private Sub Form_Load()

    Dim Ret  As Long

   

    Ret = QueryPerformanceFrequency(freq)

    If Ret = 0 Then

        MsgBox "This computer does not have a high-performance timer."

        End

        Exit Sub

    End If

    MsgBox "Fréquence en Hertz = " & FormatNumber(freq * 10000, 0)


End Sub

Daniel
Commenter la réponse de Gobillot
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 26 oct. 2006 à 13:23
0
Merci
Bonjout,

Résultat :
Res = 0
Mon pC n'a pas de chrono haute performance   

Sais-tu comment résoudre ca ?

Merci

Yann
Commenter la réponse de tri_yann
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 26 oct. 2006 à 13:23
0
Merci
Bonjout,

Résultat :
Res = 0
Mon pC n'a pas de chrono haute performance   

Sais-tu comment résoudre ca ?

Merci

Yann
Commenter la réponse de tri_yann
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 26 oct. 2006 à 23:09
0
Merci
Merci

Yann
Commenter la réponse de tri_yann
tri_yann 124 Messages postés mercredi 23 novembre 2005Date d'inscription 19 septembre 2013 Dernière intervention - 27 oct. 2006 à 11:15
0
Merci
Pour info, le GetTickCount ne fonctionne pas non plus.

--------------------------
Private Declare Function GetTickCount Lib "kernel32" (X As Currency) As Boolean
--------------------------
Function Chrono()
Dim t As Currency
GetTickCount t
End Function
------------------------------
Résultat : t = 0

Yann
Commenter la réponse de tri_yann
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 28 oct. 2006 à 00:55
0
Merci
c'est pas tout à fait comme ça
GetTickCount donne le nombre de millisecondes qui se sont écoulées depuis le début de la session courante de Windows.

pour avoir le temps d'exécution  il faut calculer la différence:
durée = temps fin - temps début

Private Declare Function GetTickCount Lib "kernel32" () As Long

Private Sub Chono_Click()
    Dim t As Long

    t = GetTickCount

'   le code à tester ici

    MsgBox "temps en millisecondes= " & (GetTickCount - t)

End Sub

Daniel
Commenter la réponse de Gobillot

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.