IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

le temps d'execution d'une commende


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2004
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 49
    Points : 38
    Points
    38
    Par défaut le temps d'execution d'une commende
    bonjour
    g fait une fonction qui calcule le fibonatci d'un entier saisi dans un text box
    et affuche les resultats dans un label .
    g remquer que pour les nombre > 30 le temps d'execution devient cosidrable
    g cherche une façon de calculer le temps d'execution de cette algorithme sur mon poste
    nb g fait appele de cette fonction quand je clucle se sur la coomende1
    voila la foction fibo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Function fibo(n As Integer) As Long
    If n < 2 Then
        fibo = n
    Else
        fibo = fibo(n - 2) + fibo(n - 1)
    End If
     
    End Function
    j'appele la fonction ici et cele que je veux savoir combient de temp il me faut pour que le resulta soient affiché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Command1_Click()
        Label2.Caption = fibo(Val(Text1.Text))
     
    End Sub

  2. #2
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    si je comprend bien tu veux connaitre le temps qu'a mis ta fonction pour s'executer ?? si c'est le cas alors voila une astuce.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim temps as date, temps, dure as long
    'tout d'abord tu recupere la date actuel, enfin avant le debut de l'execution
    temps = date(now)
     
    'ensuite tu appel ta function normalement
    result = fibo(35)
     
    'enfin tu compare la date de debut avec la date actuel 
    dure= DateDiff("ss", temps, now) 'ss pour seconde

  3. #3
    Membre éclairé
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Points : 854
    Points
    854

  4. #4
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 218
    Points
    1 218
    Par défaut
    je me demande si ton but n'est pas de calculer le temps que va mettre ton algo AVANT de l'executer. dans ce cas, il faut voir si tu peut calculer le nombre d'instruction que tu va executer. sinon, essaye d'utiliser une progressbar (mais trés difficile pour les récursives).


    salut

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 53
    Points : 59
    Points
    59
    Par défaut
    c'est une jolie démarche de recherche d'efficacité

    c un peu rare

    outre le faq que l'on t'a indiqué

    tu te fais une boucle type

    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
    a = time de début
     
    for i = 1 to 1000
    montravail
    next i
     
    b= time
     
    temps total = b-a
     
    et dans "montravail" tu testes
    if .. else .. end if
    select case
    do while
     
    ...
    tu verras c surprenat

  6. #6
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 218
    Points
    1 218
    Par défaut
    en fait, ta différence de date ne peut pas marcher car a et b aurons un format "date" et ne seront comparable que via la fonction datediff.

    sinon, on peut égualement mettre cette fonction dans un timer et utiliser la procédure doevents qui à l'avantage d'allouer de la memoire à lapli (sinon, l'ordi la met en "pas de réponse" au bout d'un certain temps.


    salut

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Citation Envoyé par sovo
    si je comprend bien tu veux connaitre le temps qu'a mis ta fonction pour s'executer ?? si c'est le cas alors voila une astuce.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    dim temps as date, temps, dure as long
    'tout d'abord tu recupere la date actuel, enfin avant le debut de l'execution
    temps = date(now)
     
    'ensuite tu appel ta function normalement
    result = fibo(35)
     
    'enfin tu compare la date de debut avec la date actuel 
    dure= DateDiff("ss", temps, now) 'ss pour seconde
    Citation Envoyé par abdallahi
    merci pour ta reponse
    mais mon prg n' apas recconnu date(now)
    remplace la ligne temps = Date(now) par temps = now ..

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 53
    Points : 59
    Points
    59
    Par défaut
    ben si ça marche

    ce que je dis c du générique

    a = timer ' tu récupères l'instant au nième de seconde
    b = timer ' tu récupères l'instant au nième de seconde

    je fais du basic et j'utilise vb ....

  9. #9
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 218
    Points
    1 218
    Par défaut
    timer n'est pas égual à time.
    time, c'est lheure windows
    et c'est beaucoup plus précis.

    salut

Discussions similaires

  1. chronometrer le temps d'execution d'une fonction
    Par semaj_james dans le forum C
    Réponses: 3
    Dernier message: 17/02/2006, 15h11
  2. [Stratégie] Mesurer le temps d'exécution d'une requête
    Par nice dans le forum Général Java
    Réponses: 5
    Dernier message: 29/01/2006, 17h53
  3. Récupérer le temps d'execution d'une methode
    Par Janitrix dans le forum Général Java
    Réponses: 3
    Dernier message: 17/12/2005, 11h01
  4. Temps d'execution d'une requête
    Par Maglight dans le forum Bases de données
    Réponses: 3
    Dernier message: 27/01/2005, 08h38
  5. [VB.NET] Temps d'éxécution d'une page...
    Par Webman dans le forum ASP.NET
    Réponses: 3
    Dernier message: 04/06/2004, 12h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo