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 :

Lenteur d'exécution (grande boucle accédant à une dll)


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 14
    Par défaut Lenteur d'exécution (grande boucle accédant à une dll)
    Bonjour à tous,

    Je n'ai pas l'habitude d'écrire sur un forum car avec des recherches sur le net, je trouve généralement mes réponses...

    Je vous mets dans le contexte:

    J'ai une boucle qui fait environ 2000 itérations et à chaque itération, il doit chercher fait appel à une dll qui a pour but de convertir des données.
    Cela fait perdre beaucoup de temps... En effet, le temps d'exécution est d'environ 2min 30s.

    Je pense qu'il y a certainement des conversions qui prennent plus de temps que d'autres et qui provoque cette lenteur.
    J'ai pensé au multi-thread mais vu que le langage de programmation est du VB6, il est déconseillé d'en faire usage...

    Après, je me suis penchée sur l'exe activex qui serait un remplacement mais cela a été sans succès.

    Voici mon code modifié:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    For Each monObjet In MaCollectiondObjet '2000 objets
            monObjet.Convertir 'méthode d une dll, c'est ici que cela ralenti
            ...
            intConvIndex = intConvIndex + 1
            RaiseEvent ConversionComplete(intConvIndex, intConvTotal)
    Next
    Est-ce que quelqu'un aurait une idée sur comment rendre l'exécution de l'application plus rapide?
    Ou même me donner des pistes?
    Je suis ouverte à toute aide

    Merci d'avance

    K.

  2. #2
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 131
    Par défaut
    Bonjour,
    Si cela se passe dans la dll appelée, à part éventuellement réécrire le code concerné ...

    Es-tu sure que tout le temps est absorbé dans la procédure appelée ?
    As-tu placé des compteurs pour évaluer chaque phase dans la boucle ?

    Boucler sur un tableau plutôt qu'une collection devrait apporter un gain de temps
    mais tout relatif si le problème est lié à la librairie appelée.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 14
    Par défaut Réponse
    Bonjour DarkVader,

    Merci pour votre réponse.
    Lorsque j'enlève "monObjet.Convertir", l'exécution se fait rapidement (2-3 secondes) mais quand je le remets cela se tend vers les minutes... Ce qui est très problématique...

    Pour répondre à votre question, oui, je suis sûre que tout le temps est absorbé dans la procédure appelée.

    Concernant la dll, je ne peux pas la réécrire...
    Il faudrait que je teste de boucler en utilisant un tableau mais cela je doute qu'il y ait un changement significatif...

    Auriez-vous d'autres suggestions?

    Merci d'avance.

    K.

Discussions similaires

  1. exécution pas à pas d'une DLL VB6
    Par achille30 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 19/11/2011, 12h11
  2. [Link dynamic]fichier excutable au lieu d'une DLL
    Par jldgbu dans le forum Windows
    Réponses: 4
    Dernier message: 07/06/2010, 23h51
  3. appel en boucle sur une DLL
    Par kaygee dans le forum ASP
    Réponses: 9
    Dernier message: 29/05/2007, 14h51
  4. Réponses: 2
    Dernier message: 20/04/2007, 10h24
  5. Réponses: 3
    Dernier message: 09/10/2002, 11h35

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