Consommation mémoire VB6

Signaler
Messages postés
258
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
27 octobre 2010
-
Messages postés
258
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
27 octobre 2010
-
Bonjour à tous,

Je suis en train de tenter de régler des problèmes de consommation mémoire sur une appli VB6

Cette appli se connecter à une base SQL Server et traite un ensemble de ligne dans une fichier texte pour les intégrer dans les tables de la base.

Mon problème est le suivant. Au fur et à mesure de l'avancement du traitement, la consommation mémoire de l'appli augmente.
Après quelques recherches, j'ai rajouté les destructions d'objet qui manquaient (set xx = nothing), j'ai modifié la portée de certaines variables, j'ai optimisé mes requetes... mais voilà, il y a encore une perte mémoire...

en faisant du pas à pas, j'ai pu noté que l'entrait dans des fonctions présentes dans des modules généraient l'allocation de 4ko supplémentaire sans libération à la sortie de la fonction.

D'autre part, régulièrement je crée un recordset avec l'instruction "New", je l'ouvre, effectue mes traitements, le ferme (Close) et le détruit => nothing.
Je constate que la ram occupée par cet objet n'est pas libérée immédiatement non plus !?

Au début de la fonction principale d'intégration de mes données, j'ai mis un point d'arret, j'en ai fait de même à la sortie de la fonction. Au début et à la fin, je note la ram occupée par l'appli... et elle augmente alors que tous mes objets sont bien détruits ...

D'un point de vue globale quelqu'un peut il me dire quand la ram est réellement libérée sous vb ?

Quels autres axes puis je explorer pour combler ces "fuites" mémoires ?

bref, je tourne en rond...

Je voudrais bien réécrire en .Net mais à ce jour, c'est impossible....

bref, j'en appelle aux idées de chacun

merci

Pat

 Don't Worry , Be Happy

<hr />lorsque le problème est résolu, pensez Réponse Acceptée

2 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
genre de choses a ne pas tester dans l'IDE, on a un environnement pas clair...

utilises tu des APIs graphiques ? (CreateCompatibleDC, etc...)
Messages postés
258
Date d'inscription
mercredi 21 avril 2004
Statut
Membre
Dernière intervention
27 octobre 2010
5
salut,
oui je sais que tester dans l'IDE n'est pas top mais pas trop le choix....
concernant ta question, non, je n'utilise pas d'APIs graphiques...
par contre il est vrai que j'ai pas mal de classe instanciées puis détruites...
ces mêmes classes instancient également d'autre classe... qui elles aussi sont détruites lorsque la classe principale est détruite...

Sais tu s'il existe un outil du type "dottrace" pour vb6 ?

En tout cas, merci de t'interresser à mon pb...
Pat

 Don't Worry , Be Happy

<hr />lorsque le problème est résolu, pensez Réponse Acceptée