| 

.NET C# Java Javascript Exception

6
Hallo,

ich habe eine Anwendung, die in mehreren Threads massenweise kurzlebige Objekte erstellt.
Nun ist es so, das der Speicherbedarf (laut Taskmanager) kontinuierlich anwächst.
Probeweises einfügen von Finalizern in den Klassen zeigen, das die Objekte alle finalisiert werden und somit wohl auch vom GC entfernt werden müssten, oder?

Gibt es ein Tool oder eine Herangehensweise mit dem/der man die Ursache für solche Probleme eingrenzen kann?

Gruß und Dank,
Alex.
08.03.2011
alex.enjoy 86 1 4
Werden deine Objekte mittels dem Dispose Pattern gelöscht? Oder warum hast du den Finalizer implementiert?
GerhardK 22.03.2011
5 Antworten
3
Schau dir doch mal die Trail von http://www.jetbrains.com/profiler/ an:
dotTrace is a simple, lightning-fast memory and performance profiler for .NET applications
08.03.2011
Floyd 14,6k 3 9
2
Hallo Alex,

Um Memory-Leaks ausfindig zu machen eignen sich hervorragend Profiler. Mit denen kannst du dein Programmverhalten sozusagen live aufnehmen, und danach anschauen und auswerten. Du kannst sehen wiviele Objekte von welchen Typ erstellt worden sind, oder, und das ist jetzt wichtig, welche Objekte noch eine Referenz auf das zu löschende Objekt haben. Das ist einer der Hauptgründe, warum es nicht gelöscht wird. Dazu kannst du auch noch auf Geschwindigkeit optimieren.

In Visual Studio ist so ein Profiler integriert.

Zu empfehlen sind auch:
- DotTrace von JetBrains http://www.jetbrains.com/profiler/
- MemProfiler http://memprofiler.com/

Eine liste mit Optimierungs/Profiler Tools findest du hier:
http://msdn.microsoft.com/de-de/vcsharp/aa336818#profilers
08.03.2011
Florian Mätschke 370 1 7
2
Super ist auch der MemoryProfiler von ANTS. Oder gleich das DeveloperBundle!
09.03.2011
phlow666 922 1 9
1
Danke für den Tip. Das Tool hat uns sehr geholfen.
mblaess 30.03.2011
Ja immer gern. Ich finds super!
phlow666 30.03.2011
2
Oder aber den EQATEC Profiler. Der ist übrigens der einzige der auch Windows Mobile (.NET Compact Framework) und Windows Phone 7 (Silverlight bzw. XNA) Profile kann.
09.03.2011
Logdog82 856 2 8
1
Von MS gibt es den CLR Profiler (2.0, 4.0). Etwas angestaubt (zumindest in der 2er version), aber mächtig und informativ.
09.03.2011
devio 302 3

Stelle deine Speicher-management-Frage jetzt!