Wie kann ich IDisposable verwenden, um Speicherlecks zu beheben?

Ich habe eine .net-App, bei der anscheinend ein Speicherverlust aufgetreten ist. Der .net-Dienst startet mit ca. 100 MB Arbeitsspeicher, erreicht unter Last jedoch ca. 400-500 MB. Die meisten meiner Klassen haben keine nicht verwalteten Ressourcen und diejenigen, die IDisposable bereits implementieren. Meine Frage ist also, ob es hilfreich ist, IDisposable auf meine Klassen zu schlagen?

Die 4-500 MB betreffen sich nicht. Die Sorge ist, dass es 8 verschiedene Dienstleistungen gibt. Jedes wird mit SharpArch, NServiceBus, Windsor und NHibernate erstellt. Ich habe das Gefühl, dass in einem davon etwas steckt, das ein Problem verursacht. Ich mache mir Sorgen, dass der Gesamtspeicher aller Dienste bei 3,2 bis 3,6 Gigs von 4 Gigs liegt. Es werden noch keine OutOfMemory-Ausnahmen ausgelöst, aber ich möchte dies auf dem Pass abschneiden. Außerdem habe ich dotTrace verwendet, das mir einige Informationen gibt. Ich bin mir nur nicht sicher, wie ich mit diesen Informationen umgehen soll.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage