Das ist neu in dotMemory

Diese Seite gibt Ihnen einen Überblick über die Neuerungen in den letzten Versionen von dotMemory und dotMemory Unit. Zu den Highlights zählen ein Befehlszeilen-Profiling-Tool, Unterstützung für .NET-Anwendungen und die Analyse von Speicherabbildern.

dotMemory herunterladen

Kostenlose 30-Tage-Testversion verfügbar

Unterstützung von MAUI-Anwendungen

Unterstützung von MAUI-Anwendungen 2024.1

Sie können jetzt Anwendungen profilen, die auf dem MAUI-Framework basieren.

Derzeit unterstützt dotMemory das Profiling von WinUI-Anwendungen, die auf .NET 7.0+ unter Windows abzielen.

Die Unterstützung gilt für das eigenständige dotMemory-Programm und für die in Rider und ReSharper integrierte dotMemory-Version.

Verbesserte macOS-Unterstützung 2024.1

  • In der eigenständigen Version von dotMemory können Sie jetzt Anwendungspakete (.app) statt Programmdateien auswählen.
  • dotMemory in Rider kann macOS-Run-Konfigurationen profilen. Die folgenden Zielframeworks werden unterstützt: net7.0-macos, net8.0-macos.
Neue dotMemory-Ansichten für Linux und macOS

Neue dotMemory-Ansichten für Linux und macOS 2024.1

Die eigenständige Version von dotMemory unter Linux und macOS nähert sich mit den folgenden Neuerungen seinem Windows-Pendant an:

  • Similar Retention-Ansicht zur Analyse von Objekt-Sets
  • Sunburst-Diagramm zur Analyse von Dominatorobjekten

Unterstützung für Frozen Object Heap 2024.1

Informationen über unveränderliche Objekte im Frozen Object Heap werden in der Timeline, im Heap Fragmentation-Diagramm und in der Generations-Ansicht angezeigt.

Eigenständiges dotMemory-Programm unter Linux und macOS 2023.3 Beta

Sie können die eigenständige Version von dotMemory jetzt auch auf den Betriebssystemen Linux und macOS ausführen.

Prozessabbild-Analyse unter Linux 2023.3

dotMemory kann jetzt unter Linux Prozessabbilder als normale Snapshots importieren und analysieren. Zu beachten ist hierbei, dass die Linux-Version von dotMemory nur Abbilder von Prozessen importieren kann, die unter Linux ausgeführt wurden.

Snapshot-Analyse in JetBrains Rider 2023.2

Vor 2023.2 konnte dotMemory in Rider nur für die Analyse der Arbeitsspeicher-Allokation verwendet werden. In Rider 2023.2 können Sie Speicher-Snapshots erfassen und diese wie in der eigenständigen dotMemory-Anwendung analysieren.

  • Die Snapshot-Analyse ist unter Windows, Linux und macOS verfügbar.
  • Unter Windows können Sie auch Prozessabbilder importieren und analysieren.
  • Einige Funktionen und Ansichten sind nicht verfügbar, z. B. automatische Snapshot-Inspektionen und die Stack-Trace-Ansichten.

Unterstützung für Windows ARM64 2022.3

Sie können jetzt dotMemory auf ARM64-CPUs unter Windows verwenden. Dies gilt für alle Versionen: die eigenständige dotMemory-Anwendung, dotMemory in Rider, dotMemory in Visual Studio und das Befehlszeilentool von dotMemory.

Unterstützung für Linux ARM32 2022.3

Sie können jetzt den dotMemory-Befehlszeilenprofiler auf ARM32-CPUs unter Linux ausführen. Unterstützt werden die Frameworks .NET Core 3.1 und .NET 5.0–7.0.

dotMemory in JetBrains Rider 2022.3

dotMemory steht jetzt nicht nur unter Windows, sondern auch unter Linux und macOS für JetBrains Rider zur Verfügung. Im Run-Widget und im Menü Run | Switch profiler configuration sind zwei neue Profiling-Modi verfügbar: Memory (sampled allocations) und Memory (full allocations). Informationen zu den Unterschieden zwischen den beiden Modi finden Sie in der dotMemory-Hilfe.

Sie können den Profiler über das Run-Menü an einen laufenden Prozess anhängen und die Erfassung des Zeitdiagramms (Timeline Graph) in Echtzeit nachverfolgen. Wählen Sie ein Intervall, um die aus der eigenständigen dotMemory-Anwendung bekannte Ansicht Memory Allocations zu öffnen. Darin können Sie die allozierten Objekte und die Baumstruktur der Allokationsaufrufe für einen bestimmten Zeitraum analysieren.

Leider ist es in dieser Version noch nicht möglich, Speicher-Snapshots zu erfassen.

Verbesserungen für den dotMemory-Befehlszeilenprofiler 2022.3

Der Befehlszeilenprofiler erkennt jetzt das Argument --saving-mode, mit dem Sie festlegen können, unter welchen Bedingungen ein dotMemory-Workspace gespeichert werden soll.

dotMemory in JetBrains Rider 2022.2

dotMemory ist jetzt direkt in JetBrains Rider verfügbar:

  • Im Run-Widget und im Hauptmenü unter Run | Switch profiler configurations sind zwei neue Profiling-Modi verfügbar: Memory (sampled allocations) und Memory (full allocations). Informationen zu den Unterschieden zwischen den beiden Modi finden Sie in der dotMemory-Hilfe.
  • Sie können den Profiler über das Run-Menü an einen laufenden Prozess anhängen.
  • Um den Timeline Graph in Echtzeit zu beobachten, wählen Sie ein Intervall aus und öffnen Sie die Ansicht Memory Allocation. Diese entspricht der gleichnamigen Ansicht in der Standalone-Version von dotMemory und ermöglicht es Ihnen, einen bestimmten Zeitrahmen detailliert zu untersuchen.

Das dotMemory-Plugin kann keine Snapshots erfassen und funktioniert in der Version 2022.2 nur unter Windows.

Unterstützung für musl-basierte Linux-Distributionen 2022.1

Das dotMemory-Befehlszeilentool unterstützt jetzt die Alpine-Versionen 3.13–3.15. Die folgenden CPUs und Frameworks werden unterstützt:

  • x64: .NET Core 3.1, .NET 5.0–6.0.
  • arm64: .NET 5.0–6.0.

Verbesserte Profiling-API 2022.1

Wenn Sie mithilfe der Profiling-API einen Snapshot erstellen, können Sie jetzt mit DotMemory.GetSnapshot("Snapshot-Name") den Snapshot benennen.

In dotMemory wird der Name auf der Seite Home | Snapshots angezeigt.

Profiling laufender Anwendungen mit Drag & Drop 2022.1

Sie haben jetzt die Möglichkeit, den Profiler an eine bereits laufende Anwendung anzuhängen, indem Sie einfach das entsprechende Symbol auf das Fenster der Anwendung ziehen.

Verbesserte Befehlszeilentools 2022.1

Das dotMemory-Befehlszeilentool zeigt jetzt beim Speichern eines Snapshots den Fortschritt an.

Verbesserte Leistung der Similar-Retention-Ansicht 2022.1

In der Similar Retention-Ansicht wurde die Datenverarbeitung erheblich beschleunigt.

Unterstützung für Apple-Silicon-Prozessoren 2021.3

Das Befehlszeilentool von dotMemory funktioniert jetzt auf Computern mit Apple-Silicon-Prozessoren. Sie können dotMemory auf der Befehlszeile verwenden, um Coverage-Analysen von .⁠NET-6-Anwendungen (nativer Modus) und .⁠NET-5-Anwendungen (Rosetta-2-Modus) durchzuführen.

Leistungsverbesserungen 2021.3

Wir haben den Algorithmus, der dem Dominatorenbaum (Objekterhaltungsdiagramm) zugrunde liegt, komplett überarbeitet. Selbst wenn ein Objektsatz Hunderte Millionen Objekte enthält, kann dotMemory in wenigen Minuten die gewünschte Ansicht öffnen.

Sampling von Speicherallokationsdaten 2021.3

dotMemory kann jetzt gesampelte Daten zur Speicherallokation basierend auf ETW-Ereignissen abrufen. Im Vergleich zur traditionellen (statistischen) Erfassung von Allokationsdaten ist die Sampling-Methode zwar weniger genau, bietet aber eine Reihe von Vorteilen:

  • Die Erfassung der Allokationsdaten hat keine Auswirkung auf die Leistung.
  • Sie müssen diese Datenerfassung nicht explizit aktivieren; sie ist immer aktiv.
  • Das Sampling von Allokationsdaten ist auch möglich, wenn Sie den Profiler an eine bereits ausgeführte Anwendung anhängen.

Bitte beachten Sie, dass diese Funktion nur unter Windows verfügbar ist.

Subsystems-Ansicht 2021.3

Sie können jetzt in der Subsystems-Ansicht Speicherallokationsdaten analysieren. Ein Subsystem gruppiert Methoden nach Typ, Namensraum oder Assembly. Die resultierende Ansicht zeigt von den Subsystemen erstellte Objekte und einen zusammengeführten Aufrufbaum für jedes Subsystem.

Aktualisierte Analyse der Speicherallokation 2021.2

In dieser Version haben wir die Möglichkeiten zur Analyse der Speicherallokationen weiter verbessert. In der Ansicht Memory Allocation wurden zwei neue Tabs hinzugefügt:

  • Auf dem Tab Methods können Sie eine einfache Liste der Methoden analysieren, denen Speicher zugewiesen wurde.
  • Der Tab Call Tree ermöglicht die Analyse des Allokations-Aufrufbaums. Jeder Knoten in der Baumstruktur zeigt neben der aufgerufenen Methode die durch den Aufruf allozierten Objekte.

Verbesserte Filter 2021.2

Die Suchleiste am oberen Rand von dotMemory-Ansichten ist jetzt flexibler und einfacher zu verwenden:

  • Die Filter bieten zusätzliche Optionen zum Eingrenzen des Suchbereichs: #struct (Suche nur in Werttypen), #c (nur in Typen), #m (nur in Methoden), #ns (nur in Namensräumen).
  • Sie können Hilfe zu allen Filtern erhalten, die im jeweiligen Kontext möglich sind.

Verbesserter Export von Objekten 2021.2

Die folgenden Möglichkeiten sind neu hinzugekommen:

  • Traversierungstiefe beim Exportieren von Objektdaten angeben.
  • Einen oder mehrere Typen auswählen und ihre Daten in eine einzelne Datei exportieren.
  • Objektdaten aus den Ansichten Instances, Outgoing References und Unreachable Objects exportieren.

Aktualisierter Konsolenprofiler 2021.2

Das Sammeln von Speicherallokationsdaten kann jetzt mit Servicenachrichten aktiviert oder deaktiviert werden.

Stack-Trace in Zwischenablage kopieren 2021.2

Wenn Sie in dotMemory ein Stack-Trace in die Zwischenablage kopieren, wird es nun automatisch in Rider oder Visual Studio mit ReSharper geöffnet.

Neuer Startbildschirm 2021.1

Wir haben den Startbildschirm von dotMemory vollständig überarbeitet: Sie können jetzt viel einfacher neue Profiling-Sitzungen konfigurieren und starten, mit Snapshots arbeiten und andere grundlegende Vorgänge ausführen.

Unterstützung für Linux-Dumps

Unterstützung für Linux-Dumps 2021.1

Jetzt können Sie Dumps von .NET-Core-Anwendungen analysieren, die auf Linux-Systemen mit gcore erfasst wurden.

Verbesserte Analyse der Speicherallokation

Verbesserte Analyse der Speicherallokation 2021.1

Mit dotMemory können Sie jetzt die Speicherallokation in einem beliebigen Zeitintervall analysieren. Wählen Sie einfach in der Zeitleiste das Intervall aus, und die Ansicht Memory Allocation zeigt die in diesem Intervall allozierten Objekte sowie den Stacktrace an, in dem die Allokation erfolgt ist.

dotMemory herunterladen

Kostenlose 30-Tage-Testversion verfügbar