cs_got
Messages postés139Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention15 mars 2016
-
26 févr. 2007 à 08:50
cs_got
Messages postés139Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention15 mars 2016
-
26 févr. 2007 à 11:36
Bonjour,
j'ai une appli VB qui tourne en tant que serveur winsock sans interface graphique. Ce programme sert en fait de passerelle avec un automate pour une autre appli VB.
Mon probleme est que l'application voit son occupation mémoire grossir sans arret jusqu'a provoqué un manque de memoire de la part de windows. Ma question est, comment pouvoir isoler la variable, fonction ou dll qui utilise autant de memoire.
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 26 févr. 2007 à 09:08
Salut,
Faudrait aussi que tu regardes, si dans ton appli tu déclares des objets avec l'instruction Set toto CreateObject...... et si tu les décharge de la mémoire aprés utilisation avec l'instruction Set toto Nothing...
Tu as peut-être une sorte de "boucle", qui "remplie" ta mémoire et à force mémoire pleine...
C'est qu'il faut chercher une peu partout dans ton apllication...
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 26 févr. 2007 à 09:26
Salut,
Essaye alors si tu peux, de mettre certaines parties de ton apllication en remarques, pour voir quelles parties ou fonctions qui te "bouffe" toute la mémoire..
Ou de lancer ton application en mode : Pas à Pas et de voir qu'est-ce qui touren sans arrêt..
cs_got
Messages postés139Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention15 mars 2016 26 févr. 2007 à 09:36
Dans ce cas de figure le pas à pas est difficile à mettre en oeuvre. L'idéale aurait été de pouvoir mettre des flag ou test visible en compilé...
Mais meme en pas à pas je ne verrai pas qu'elle variable utilise plus de memoire qu'une autre?! je connais les fonction appelé regulierement ça c'est pas un souci le souci c'est de savoir la dedans qui utilise la memoire...
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 26 févr. 2007 à 10:58
ton problème s'appelle une fuite mémoire. Il vient effectivement, généralement dans le cas ou un objet est créer mais n'est pas détruit après utilisation.
Puisque c'est un serveur Winsock, j'immagine que lors d'une demande de connection, tu n'tulise pas le controle winsock en ecoute pour répondre, mais tu en crée un second pour répondre à la connection. Est-ce que tu détruit bien ce second controle lorsque la connection est terminée.
Parce que justement ça ressemble à une demande périodique de connection. A chaque demande tu crée un nouveau controle winsock pour répondre, seulement les controles précédenment créés ne sont pas détruits et ils s'accumule en mémoire
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 26 févr. 2007 à 11:16
Je ne sais pas si le fait que le client distant ferme la connection suffise. Pour etre sur de fermer la connection locale, avant le unload, rajoute un Winsock1(index).Close
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_got
Messages postés139Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention15 mars 2016 26 févr. 2007 à 11:24
je fais un close sur le unload aussi .. mais comme l'appli n'est pas fermé souvent, voir jamis en ce momeent elle et fermé à cause du pb de mémoire mais en temps normal elle n'est pas censée être fermée...