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 :

Evolution d'une application : Question sur le gain de performance


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Points : 367
    Points
    367
    Par défaut Evolution d'une application : Question sur le gain de performance
    Bonjour à tous,

    Pour planter le décors je reprends dans mon entreprise une application à l'abandon depuis 2 ans qui recherche des prix d'achat sur un serveur MS.
    => Elle est très lente... (très très lente même)

    1°) chargement de combobox
    Actuellement lorsque l'on choisie une catégorie, une requête est faite pour trouver la sous catégorie, et une sous sous catégorie.
    CAT 1 => CAT 1.1 => CAT 1.1.1

    Pour limiter les requêtes, la solution au démarrage de l'application de charger l’intégralité des cat 1 et 1.1 dans un tableau est elle une bonne solution ?
    (Calcul que je viens de faire, c'est charger un tableau de 300 lignes environ (20 Grandes catégorie 1 avec pour chacune 15 sous catégories environs))
    (Si je colle tout dans un tableau Cat 1, 1.1, 1.1.1 j'ai environ 4000 lignes)
    La solution à t elle un intérêt sur les performances de l'application ?

    2°) déplacement du code
    Actuellement lorsque l'on clique sur le bouton recherche les 50 fonctions de calculs se lancent sans restriction.
    Form Principale : => on lance la procédure X => Dans la procédure X on test si oui ou non on reste dans cette procédure

    Mon idée :
    Form principale => On test si oui ou non on doit lancer telle procédure => je lance la procédure qui se trouve dans un module pour une meilleure lecture du code
    Ma question est de savoir si ma solution pourrait faire gagner du temps ?

    Le but n'est pas là de refaire cette application qui fonctionne parfaitement, uniquement de gagner un temps de traitement dans les demandes.

    J'espère être compris ^^ merci de vos retours si jamais vous avez d'autres idées
    Loi de l’Inertie de la Programmation de Dijkstra
    Si vous ne savez pas ce que votre programme est censé faire, vous feriez bien de ne pas commencer à l’écrire.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    pas compris grand chose

    pour optimiser des temps d'exécution il faut mesurer ce qui prend du temps (chrono dispo via system.diagnostics.stopwatch) puis chercher comment mieux faire ca
    si tu veux de l'aide la dessus il faudra expliciter
    j'imagine que par serveur MS tu veux dire sql server, même si rien n'est moins sur, auquel cas il faut nous donner le schéma des tables, les index, et les requetes pour qu'on puisse t'orienter
    si c'est là que ca coince c'est déjà une bonne nouvelle, optimiser des temps d'exécution de requete c'est simple et ca ne touche pas spécialement au code de l'appli

    après si c'est sur le fonctionnement que ca coince il faudrait nous expliquer mieux l'agencement des réponses à l'IHM et des traitements, et là ca peut demander plus de modif de code, et donc de retester plus de choses (voire tout pour être sur)

    le multithreading est aussi quelque chose qui peut faire gagner un peu de temps (presque 2x mieux si 2 coeurs, et encore plus s'il y a des choses qui attendent une réponse d'un serveur)
    même niveau interface on peut s'en servir, genre à l'ouverture de la fenetre, tu peux charger toutes les données que tu risques d'avoir besoin, et en fonction d'un choix dans un combobox te servir des données qui ont été ramenées précédemment, ca évite d'attendre

    mais bon déjà si tu trouves du temps perdu sur une base de données, ca s'améliore facilement et ca suffira surement
    pour info, récupérer 4000 choses et les mettre dans un treeview ca doit pouvoir se faire en moins de 3 secondes je pense
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre averti
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Points : 367
    Points
    367
    Par défaut
    Bonjour et merci pour votre retour

    Je vais aller voir comment la base est construite avec les gens chez nous car effectivement je suis parti du prédicat qu'elle était bonne...

    Je vais fermer la discussion, je vais voir coté code en suivant votre idée de chrono et je reviendrais avec un schéma de la base quand j'aurais dépouillé un peu le truc.

    Merci en tout cas pour vos pistes de réflexion, je m'y penche de suite
    Loi de l’Inertie de la Programmation de Dijkstra
    Si vous ne savez pas ce que votre programme est censé faire, vous feriez bien de ne pas commencer à l’écrire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Encore une petite question sur les sockets...
    Par damien99 dans le forum MFC
    Réponses: 4
    Dernier message: 15/02/2006, 14h22
  2. Réponses: 24
    Dernier message: 29/08/2005, 13h33
  3. Une tite question sur Grep()
    Par bluecurve dans le forum Langage
    Réponses: 16
    Dernier message: 16/07/2005, 15h47
  4. [Intraweb] Déployer une application intraweb sur IIS ?
    Par maxgar dans le forum Web & réseau
    Réponses: 9
    Dernier message: 21/07/2004, 14h21

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