2017-08-09 2 views
4

Ich begann die Clrmd zu erforschen, um zu visualisieren, was alle Variablen zu stapeln und zu häufen, und endete mit einer Reihe von (> 1000) Objekte in den Haufen, von denen die Mehrheit von String-Typ sind, die nicht von mir erstellt werden in diesem Prozess und einem Stacktrace, der nur die Informationen über Methoden (Stackframes) in jedem Thread gibt, aber nicht über die Variablen und andere Eigenschaften, die in der Methode vorhanden sind.Können wir uns irgendwie vorstellen, was alles zu stapeln und was alles in einem Prozess zu haufen ist (kann C# sein)?

Meine Fragen sind:

  1. Warum und wie jene Anzahl von String-Objekte sind in Heap erstellt, auch wenn ich keine Saiten in meinem Programm (C# -Code) verwenden didnot.
  2. Gibt es eine Möglichkeit, die Heap-Objekte so zu filtern, dass nur die vom Programm verwendeten Objekte (mein C# -Code, der die intern erstellten Objekte durch das Programm zurücklässt) mit clrmd oder einem anderen nuget-Paket oder einem Werkzeug angezeigt werden.
  3. Auf jeden Fall kann ich die Menge der Variablen (lokale Variablen) anzeigen, die in den Methoden verwendet werden, die den Stackframe des Prozesses (MY C# CODE) in einem anderen Prozess verwenden.

Antwort

0

Lieber Ganesh können Sie versuchen, Red-Gate [ANTS Memory Profiler], um das Objekt auf Speicher zu verfolgen und filtern sie durch jede Art ... folgen Sie dem Link unten

here

+0

Ich las über nur Ameisen Speicher Profiler, aber es konnte meine Fragen nicht beantworten (1,2,3), trotzdem werde ich es versuchen. Danke für deine Rücksicht. –

Verwandte Themen