OVH Cloud OVH Cloud

Fuite mémoire, un outil ?

15 réponses
Avatar
Bonjour,

Je me retrouve avec des OutOfMemory exception dans mon=20
appli asp.net, ce qui semble indiquer que j'ai des fuites=20
m=E9moire

Existe-t-il un outil type Purify qui marche avec asp.net ?

Merci de vos conseils !

10 réponses

1 2
Avatar
Bruno Jouhier [MVP]
Il y a des versions .NET d'OptimizeIt chez Borland, et de Purify chez
Rational (IBM).

Pour un gratuit, tu peux télécharger CLR profiler chez Microsoft:
http://www.microsoft.com/downloads/details.aspx?FamilyId†CE6052-D7F4-4AEB-9B7A-94635BEEBDDA&displaylang=en

Bruno.

a écrit dans le message de news:
000f01c4aa39$65cc1d70$
Bonjour,

Je me retrouve avec des OutOfMemory exception dans mon
appli asp.net, ce qui semble indiquer que j'ai des fuites
mémoire

Existe-t-il un outil type Purify qui marche avec asp.net ?

Merci de vos conseils !
Avatar
je croyais que ce genre de probleme etait revolu avec
l'apparition du GC? a moins que ce ne soit du a la
creation de milliards d'instances sans les liberer??
:)




-----Message d'origine-----
Bonjour,

Je me retrouve avec des OutOfMemory exception dans mon
appli asp.net, ce qui semble indiquer que j'ai des fuites
mémoire

Existe-t-il un outil type Purify qui marche avec asp.net ?

Merci de vos conseils !

.



Avatar
Patrick Philippot
wrote:
Je me retrouve avec des OutOfMemory exception dans mon
appli asp.net, ce qui semble indiquer que j'ai des fuites
mémoire



Si .Net annonce une MemoryException c'est qu'après avoir compacté au
maximum le tas et râclé les fonds de tiroir du GC jusqu'en génération 2,
il ne peut toujours pas vous allouer autant de mémoire que votre code en
réclame. C'est rare et en général le signe d'un problème assez énorme.

Il y a déjà ça:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q820108

Pourrait-on en apprendre un peu plus sur la configuration de votre
système et ce que fait l'appli? Quelle version du framework? Quel
serveur? Combien de mémoire? Avez-vous suivi l'évolution du système
avant l'erreur ne serait-ce qu'avec le Task Manager(onglet Performance)
ou l'outil Performance Monitor (perfmon.exe - voir également
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconperformancecountersforaspnet.asp)?
Que dit le journal d'événements? Votre code utilise-t-il des objets COM
via Interop? Est-ce qu'une opération particulière provoque l'erreur? Si
oui, l'avez vous tracée dans le débogueur?

Bon courage.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Bruno Jouhier [MVP]
Effectivement, on n'a plus le risque d'oublier un free/delete.

Mais si on enregistre des objets dans des collections statiques, on risque
de maintenir en mémoire de gros graphes d'objets (attention aux delegates
aussi). Les outils en question permettent de savoir combien d'objets ont été
alloués dans chaque classe, ce qui permet de comprendre plus facilement
pourquoi la mémoire n'est pas libérée comme on le pense.

Bruno.

a écrit dans le message de news:
20af01c4aa54$72b97cb0$
je croyais que ce genre de probleme etait revolu avec
l'apparition du GC? a moins que ce ne soit du a la
creation de milliards d'instances sans les liberer??
:)




-----Message d'origine-----
Bonjour,

Je me retrouve avec des OutOfMemory exception dans mon
appli asp.net, ce qui semble indiquer que j'ai des fuites
mémoire

Existe-t-il un outil type Purify qui marche avec asp.net ?

Merci de vos conseils !

.



Avatar
Patrick Philippot
Re,

Le texte complet du message d'exception serait également utile. Merci.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Merci pour toutes vos réponses, j'ai de quoi faire...

Pour info, mon appli est toute bête : des clients asp.net
qui se connectent à un sql server pour
lister/créer/updater/deleter des records.

J'ai un gros volume (pour moi) de connexions sur ce site
(3000 par jour), et chaque connecté génère des download
d'enregistrements depuis la base. Mon site est hébergé à
l'autre bout de la planète donc je ne peux pas faire des
perfmon sur le serveur ;-) et tout seul je ne peux pas
générer l'erreur, elle n'arrive pas !

Je ne crée pas de collection statique e tje n'utilise pas
d'objet COM, je fais juste des sqldatareader

Peut-être le vrai problème est que l'appli est hébergée
avec d'autres sites et que je subis la consommation
mémoire des autres applis... D'autant que l'erreur arrive
tout le temps la nuit pour moi, qui correspond à la
journée là où l'appli est hébergée (aux US), alors que ça
ne correspond pas à mon pic de connexions ...



-----Message d'origine-----
Bonjour,

Je me retrouve avec des OutOfMemory exception dans mon
appli asp.net, ce qui semble indiquer que j'ai des fuites
mémoire

Existe-t-il un outil type Purify qui marche avec asp.net ?

Merci de vos conseils !

.



Avatar
Pour info, le message que je récupère par mail envoyé par
mon appli quand elle plante :
Exception of type System.OutOfMemoryException was thrown.

-----Message d'origine-----
Merci pour toutes vos réponses, j'ai de quoi faire...

Pour info, mon appli est toute bête : des clients asp.net
qui se connectent à un sql server pour
lister/créer/updater/deleter des records.

J'ai un gros volume (pour moi) de connexions sur ce site
(3000 par jour), et chaque connecté génère des download
d'enregistrements depuis la base. Mon site est hébergé à
l'autre bout de la planète donc je ne peux pas faire des
perfmon sur le serveur ;-) et tout seul je ne peux pas
générer l'erreur, elle n'arrive pas !

Je ne crée pas de collection statique e tje n'utilise pas
d'objet COM, je fais juste des sqldatareader

Peut-être le vrai problème est que l'appli est hébergée
avec d'autres sites et que je subis la consommation
mémoire des autres applis... D'autant que l'erreur arrive
tout le temps la nuit pour moi, qui correspond à la
journée là où l'appli est hébergée (aux US), alors que ça
ne correspond pas à mon pic de connexions ...



-----Message d'origine-----
Bonjour,

Je me retrouve avec des OutOfMemory exception dans mon
appli asp.net, ce qui semble indiquer que j'ai des




fuites
mémoire

Existe-t-il un outil type Purify qui marche avec




asp.net ?

Merci de vos conseils !

.



.



Avatar
Exception of type System.OutOfMemoryException was thrown.

-----Message d'origine-----
Re,

Le texte complet du message d'exception serait également


utile. Merci.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr


.



Avatar
Patrick Philippot
wrote:
Mon site est hébergé à
l'autre bout de la planète donc je ne peux pas faire des
perfmon sur le serveur ;-) et tout seul je ne peux pas
générer l'erreur, elle n'arrive pas !



Ah là, effectivement, ça va être difficile.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
Patrick Philippot
wrote:
Pour info, le message que je récupère par mail envoyé par
mon appli quand elle plante :
Exception of type System.OutOfMemoryException was thrown.



Il n'y a aucune autre info? Pas de liste des appels?

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
1 2