Que peut causer octets privés IISExpress de continuer à augmenter sans changement significatif tas managé?

StackOverflow https://stackoverflow.com/questions/7810032

Question

J'ai une application ASP.NET MVC 3 qui utilise Windsor pour injecter des dépôts et des sessions NHibernate. Aujourd'hui, pour la première fois, je frappe un OutOfMemoryException. Au début, je pensais que ce serait peut-être parce que je ne libérera pas des objets Transient que Windsor a été crée. Comme une expérience rapide, je me suis tourné tous ceux qui dans la vie PerWebRequest, mais il ne semble pas avoir affecté le modèle d'utilisation de la mémoire dans une grande manière -. Il garde encore monter

  • Je ne fais pas de la mise en cache
  • Je ne suis pas en utilisant toutes les ressources non gérés
  • I h faire sérialisation JSON de plusieurs objets anonymes
  • L'action que j'utilise pour le stress test retourne juste un petit objet JSON (32 octets), les objets, donc pas grand sont impliqués partout

Ce qui pourrait causer des octets privés IISExpress pour continuer quand ma gestion taille du tas est stable (vérifié avec Perfmon)?

Quel serait le bon outil pour débugger? Je présume que profileurs CLR ne peut pas être utile, car Perfmon ne présente pas de fuite dans le tas managé.

Était-ce utile?

La solution

Utilisation de la mémoire semble être stable après avoir désactivé Glimpse .

Je ne sais pas ce qu'il pourrait peut-être faire une fuite mémoire non géré, mais simplement la mise en on="false" dans la section de configuration Glimpse dans web.config rend instantanément l'écurie utilisation de la mémoire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top