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.NET Discussion :

problème du temps d'exécution


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2011
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 109
    Par défaut problème du temps d'exécution
    Bonjour,


    J'ai besoin de votre aide.
    J'ai trouvé une solution pour le calcul d'une moyenne (dans une autre discussion) voici le code:
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    Dim date_min, date_finale, date_j As Date
            Dim somm, ap_j, moy As Double
            Dim num_j_min, num_mois_min, num_mois_actuel, num_an_actuel, nbre_j_mois_actuel, num_an_minimale, nbre_ans, an, i, j As Integer
            'on initialise i à 1
            i = 1
            'date minimale dans la base
            date_min = Me.Historiques_barragesTableAdapter1.ScalarQueryMin_Date()
     
            'num jour de la date minimale
            num_j_min = date_min.ToString("dd")
     
            'num mois de la date min
            num_mois_min = date_min.ToString("MM")
     
            'num de l'année de la date minimale
            num_an_minimale = date_min.ToString("yyyy")
     
            'num mois actuel
            num_mois_actuel = DateTimePicker1.Value.ToString("MM")
     
            'num de l'année actuelle
            num_an_actuel = DateTimePicker1.Value.ToString("yyyy")
     
            'nombre de jour du mois actuel
            nbre_j_mois_actuel = Date.DaysInMonth(num_an_actuel, num_mois_actuel)
            ' on initilise an à 
            an = num_an_minimale
            'date final de control
            date_finale = CDate(nbre_j_mois_actuel & "/" & num_mois_actuel & "/" & an)
     
            'on initialise le nombre d'années à 0
            nbre_ans = 0
            'on initilise la somme à 0
            somm = 0
            If (num_mois_min < num_mois_actuel) Or (num_mois_min = num_mois_actuel And num_j_min = 1) Then
                an = num_an_minimale
                       Else : an = num_an_minimale + 1
                      End If
            Do While DateTime.Compare(DateTimePicker1.Value.ToShortDateString, date_finale.ToShortDateString) > 0
                           For j = 1 To nbre_j_mois_actuel
                    date_j = CDate(j & "/" & num_mois_actuel & "/" & an)
                    ap_j = CDbl(Me.Matable.GetDataBy(i, date_j.ToShortDateString).Item(0).X)
                    somm = somm + ap_j
                Next
                nbre_ans = nbre_ans + 1
                an = an + 1
                date_finale = CDate(nbre_j_mois_actuel & "/" & num_mois_actuel & "/" & an)
            Loop
                  moy = somm / nbre_ans

    le problème c'est que je dois éxécuter ce code trois fois pour obtenir un fichier donné, et ceci prend beaucoup de temp.
    Avez- vous une solution pour minimiser le temps d'éxécution?
    Merci d'avance pour votre aide.

  2. #2
    Membre éclairé
    Homme Profil pro
    Responsable Maintenance
    Inscrit en
    Août 2012
    Messages
    479
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Responsable Maintenance

    Informations forums :
    Inscription : Août 2012
    Messages : 479
    Par défaut
    Je pense qu'il est plus rapide ( à confirmer) de faire un calcul en utilisant des variables que la valeur des propriétés d'un objet.

    Donc transfert un max de ces valeurs dans des variables et fait les calculs ensuite.

    aussi je pense ( Si Si c'est pas des conneries Je pense) :
    qu'il est préférable que tu fasses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    date_j = CDate(j & "/" & num_mois_actuel & "/" & an).ToShortDateString
                    ap_j = CDbl(Me.Matable.GetDataBy(i, date_j).Item(0).X)
    Refais tes retraits STP c'est imbuvable. JE suis un débutant aussi donc j'essai qu'on puisse relire mon code sans mal de tête fis en de même.


    après essai de faire une Fonction de Tout ça que tu appelles quand tu en as besoin

  3. #3
    Membre très actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Par défaut
    Bonjour.

    S'agit-il d'une moyenne de plusieurs dates ?

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    au lieu de nous mettre du code illisible il aurait été préférable de nous dire ce que tu as au départ et ce que tu veux en sortie

    il y a toujours plusieurs facon de faire quelque chose, ici tu sembles avoir choisi la mauvaise ^^

    (quant aux variables plutot que propriété d'objet, ca dépend de l'objet, mais dans la majorité des cas ca ne change pas grand chose)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2011
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 109
    Par défaut
    Salut

    au lieu de nous mettre du code illisible il aurait été préférable de nous dire ce que tu as au départ et ce que tu veux en sortie
    la discussion suivante explique ce code:
    http://www.developpez.net/forums/d12...alcul-moyenne/

    J'ai pas reussi à le faire dans une fonction.

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    votre explication sur l'autre topic n'est pas claire non plus

    par contre une chose est sure, vous êtes sur une mauvaise piste
    une moyenne ca se fait un millième de seconde et 2 lignes de code ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2011
    Messages
    109
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 109
    Par défaut
    l'explication est claire pour ceux qui veulent la comprendre.
    Celui qui n'a pas compris le problème ne peux pas juger aucune solution et merci.

Discussions similaires

  1. [Admin] Problème de temps d'exécution d'un rapport Webi
    Par zaza78 dans le forum Administration-Migration
    Réponses: 7
    Dernier message: 28/09/2010, 10h58
  2. Réponses: 1
    Dernier message: 28/09/2009, 08h30
  3. Problème de temps d'exécution aléatoire
    Par ouis dans le forum SQL
    Réponses: 4
    Dernier message: 04/09/2008, 09h55
  4. [SqlServer2000] Problème de temps d'exécution d'une proc stock
    Par GuillaumeBibaut dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 20/11/2006, 14h31
  5. [SQL] Problème de temps d'exécution maximum
    Par manshoon dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 18/05/2006, 14h07

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