2 Stimmen

Speicher von w3wp.exe wiederherstellen

Ist es möglich, den verlorenen Speicher von w3wp.exe wiederherzustellen? Ich dachte, ein session.abandon() sollte die Ressourcen auf diese Weise aufräumen? Die Sache ist die, dass ich eine Webanwendung habe, bei der bestimmte Seiten die w3wp.exe erheblich anwachsen lassen. Zum Beispiel von 40 MB auf 400 MB. Jetzt werde ich meinen Code trotzig optimieren, um dies zu reduzieren, aber für was auch immer Betrag die w3wp.exe wächst, gibt es keine Möglichkeit, den verlorenen Speicher wiederherzustellen, auch wenn der Benutzer abgemeldet und den Browser geschlossen hat?

Ich weiß, dass dieser Arbeitsprozess nach 30 Minuten (Standard) Leerlaufzeit recycelt wird, aber was ist, wenn es lange Zeit keine Leerlaufzeit gibt und der Arbeitsprozess immer noch über diesen Teil des Speichers verfügt, der einfach weiter wächst? Hat jemand eine Idee?

0voto

Mauricio Scheffer Punkte 97391

Der Garbage Collector kümmert sich um den Speicher, der freigegeben werden muss, vorausgesetzt, Sie entsorgen alles korrekt usw. Der GC schaltet sich nicht sofort ein, wenn Sie Session.Abandon() aufrufen, denn das wäre ein großer Leistungseinbruch.

Abgesehen davon hat jede Anwendung einen "normalen" Speicherverbrauch, d.h. einen stabilen Speicherverbrauch (wiederum vorausgesetzt, dass Sie keine Lecks haben), und diese Zahl ist für jede Anwendung unterschiedlich. 400 MB können viel oder nichts sein, je nachdem, was Ihre Anwendung tut. Ich habe Anwendungen, die sich um 400 MB bewegen und andere um 1,5 GB, und das ist in Ordnung, solange sich die Speichernutzung irgendwo stabilisiert. Wenn Sie eine unbegrenzte Speichernutzung sehen, haben Sie höchstwahrscheinlich irgendwo in Ihrer Anwendung ein Leck.

Das Speichern großer Datenmengen in der In-Process-Sitzung kann den Speicherverbrauch ebenfalls schnell in die Höhe treiben. Verwenden Sie stattdessen eine Datei oder eine Datenbank, um diese Daten zu speichern.

0voto

Mike Punkte 3432

Wenn Sie den Speicher nicht auslaufen lassen, wird der Speichermanager diesen Speicher wiederverwenden, so dass der Prozessspeicher nicht weiter wachsen sollte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X