2009-06-17 11 views
1

Actuellement, j'ai un service Web (WCF) qui expose les méthodes qui sont définies sur statique. D'un point de vue strictement mémoire/GC, qu'est-ce qui diffère dans la manière dont le CLR et le GC traitent les objets statiques et non statiques?Service Web statique sur non statique

Répondre

1

Les données statiques ne seront pas collectées avant que le domaine AppDomain ne soit arrêté; Généralement, cela signifie que la mémoire restera allouée jusqu'à ce que l'application soit fermée, à moins que vous n'effectuiez une sorte de gestion AppDomain spéciale. Les objets non statiques seront collectés par le garbage collector, par les règles normales - plus de références, et à chaque exécution du GC.

+0

Cool stuff. Nous avons des problèmes d'allocation de mémoire excessive (plus de 400 Mo) pour une application qui doit fonctionner pendant des semaines à la fois. Quand nous ne pouvions rien trouver d'anormal, nous pensions que cela pouvait nous concerner en utilisant des objets statiques. Nous allons commencer à recoder en non-statique à partir de demain. Merci de votre aide! – Phillip

+1

400Mo n'est pas très grand. –

+0

John - Je ne suis pas d'accord quand ce 400Mo prend tout le système. Après avoir modifié le code pour non-statique, nous avons pu obtenir l'application à 18 Mo ce qui est raisonnable. Merci encore Bruce! – Phillip

Questions connexes