pneau
Messages postés258Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention27 octobre 2010
-
27 mai 2009 à 10:30
pneau
Messages postés258Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention27 octobre 2010
-
27 mai 2009 à 11:42
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
pneau
Messages postés258Date d'inscriptionmercredi 21 avril 2004StatutMembreDernière intervention27 octobre 20105 27 mai 2009 à 11:42
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