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 :

Meilleure façon de coder


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut Meilleure façon de coder
    Bonjour

    J'ai une petite question banal
    Voila, je code un projet et j'utilise des structures. Dans les deux exemples que je présente j'obtiens le même résultat certes mais y a t'il une façon mieux que l'autre ... question mémoire ou autres.

    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
     Structure exempl
            Dim Str1 As String
        End Structure
     
     
    Sub Ess25()
            '----------------------------------------------------
            'Exemple 1 Déclaration de la structure une seule fois
     
            Dim Stc_Exem As exempl = Nothing
            Dim IntInd As Integer = 0
     
            Do Until IntInd = 1000
                Stc_Exem = New exempl
                Stc_Exem.Str1 = "Bla"
                'Utilise la variable
                Console.WriteLine(String.Format("{0} {1}", Stc_Exem.Str1, IntInd))
                '
                '
                '
                'Destruction de la structure
                Stc_Exem = Nothing
     
                IntInd += 1
            Loop
            IntInd = 0
            '----------------------------------------------------
     
            'Exemple 2 Créer une nouvelle structure à chaque tour
     
            Do Until IntInd = 1000
                Dim Stc_Exem2 As New exempl
     
                Stc_Exem2.Str1 = "Bla"
                'Utilise la variable
                Console.WriteLine(String.Format("{0} {1}", Stc_Exem2.Str1, IntInd))
                '
                '
                '
                'Destruction de la structure
                Stc_Exem2 = Nothing
     
                IntInd += 1
            Loop
            '----------------------------------------------------
     
        End Sub
    merci de me donner votre avis

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,
    Dans le 2ème exemple, tu redéclares la variable à chaque tour de boucle, ce qui écrase la précédente.
    Dans le 1er exemple, tu réutilises la même variable à chaque tour.
    La différence entre les 2 est, tout au plus, le temps d'une réallocation mémoire. Perso, le trouve cela insignifiant mais dans l'absolu ...
    Par contre, sauf erreur de ma part, dans le cas de la structure, l'usage de l'opérateur NEW n'est pas nécessaire. Je m'abstriendrais.
    J'espère que ceci t'aidera ...

  3. #3
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 573
    Par défaut
    Bonjour,
    Tu nous présente 2 exemple qui utilisent une instance de structure alors qu'un simple string ferait la même chose !

    Explicite ta demande car j'ai l'impression que ta question cache quelque chose de plus complexe, enfin je l'espère.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut
    en effet Thumb down très perspicace le gars , c'est que je travail sur un projet, c'est un peu compliqué car je sais pas ou ce situe mon problème mais j'ai des arrêts pour manque de mémoire. j'ai choisi de présenter le cas des structures histoire de voir si ma façon d'utiliser mes variables ne serait pas problématique.

    En fait j'utilise une base de donner Access que je crois un peux volumineux plus de 1 gig. Ce qui fait que lorsque je la charge au complet dans une datatable mes requêtes sont lentes et j'ai près de 8000 requêtes à traiter quotidiennement. Alors je me suis dit, dans ma boucle je vais créer une nouvelle datatable avec les donner qu'il me faut seulement faire le traitement requis et la détruire.

    En gros ça ressemble à ça!

  5. #5
    Membre chevronné Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 346
    Par défaut
    montre le code directement.... si tu veux qu'on t'aide.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut
    Citation Envoyé par licardentaistor Voir le message
    montre le code directement.... si tu veux qu'on t'aide.
    merci de vos réponses, j'ai modifier mon code depuis. J'essai de trouver la meilleur combinaison. Je vais essayer de réduire mes tables ... quitte à utiliser du CSV.

  7. #7
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 573
    Par défaut
    Bonjour,
    Il faut déterminer si le problème se situe niveau VB.net ou Access.

    En effet une requête c'est une table temporaire qui disparaîtpas vraiment après utilisation.

    Je t'invite à compter ta base de données régulièrement.

    Pour information une base Access de plus de 1go ça ne devrait pas exister c'est à mon avis un siècle de données 😭

Discussions similaires

  1. Meilleure façon pour coder cette classe ?
    Par reacen dans le forum Général Java
    Réponses: 5
    Dernier message: 03/08/2011, 10h03
  2. La meilleure façon de coder en CSS
    Par lightstring4 dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 01/06/2009, 23h10
  3. Est ce bien la meilleure façon de faire un histogramme ?
    Par rvzip64 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 10/05/2005, 12h41
  4. [JSP-Servlet] Conseils sur façon de coder
    Par gunnm dans le forum Servlets/JSP
    Réponses: 20
    Dernier message: 09/12/2004, 20h57

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