Frage

Kontext: Wir bauen einen Rahmen für die schnelle Lieferung von WPF-Anwendungen. Dieses Framework verwendet Autofac als IoC-Container und verwendet auch Regionen von Prism v1. Wir planen Aufgaben mit Parallel-Erweiterungen von Microsoft.

Wir stehen vor folgendes Problem: Wenn wir die Anwendung mit leeren Blick booten (so nur eine Hülle mit Regionen und Platzhalter-Steuerelemente), wird der Speicher für etwa 60 Sekunden stabil bleiben und danach wird es erhöht sich um jede Sekunde mit 4 kb, dann 4kb, danach 8 kb. Also alle 3 Sekunden haben wir 16Kb in unseren Speicherdruck gegeben.

Was haben wir versucht, das Leck aufzuspüren. Ich begann von DotTrace verwenden, aber ich konnte keinen Unterschied zwischen zwei Schnappschüsse Abstand von 30 Minuten sehen. Verschoben auf .NET Memory Profiler, weil es gibt mir mehr Informationen aber auch hier können wir keine Unterschiede zwischen zwei Schnappschüsse sehen. Wir können sehen, dass eine Reihe von Objekten erstellt bekommen, aber sie sind zu und führen zu einem Delta von 0 entfernt. Also zog ich auf Windbg, aber das Ergebnis ist das gleiche.

Eine weitere seltsame Sache ist, dass, wenn wir sysinternals beginnen dbgvw wir nicht sehen alle Anrufe in unseren Anwendungen gemacht werden.

Haben Sie Vorschläge, was wir vielleicht nächstes versuchen, herauszufinden, was / wer der Schuldige ist?

War es hilfreich?

Lösung 2

Es stellt sich heraus, es war ein Fehler innerhalb WPF und die Abhilfe war ein Fenster-Handler als erstes Objekt oder etwas zu schaffen. Danke Jungs

Andere Tipps

Wenn Sie nicht verwalteten Lecks suchen und Visual Studio verwenden Sie können überraschend hilfreiche Informationen unter Verwendung der in crt Funktionen eingebaut bekommen:

finden Sie unter auf eine ähnliche Frage

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top