Das ist neu in dotMemory

Auf dieser Seite stellen wir Ihnen die neuesten Updates und Änderungen in dotMemory vor.

dotMemory herunterladen

Kostenlose 30-Tage-Testversion verfügbar

Bedienoberfläche 2024.3

Das Update 2024.3 enthält eine Reihe kleinerer Verbesserungen für die Bedienoberfläche und die Nutzungserfahrung sowie abschließende Anpassungen für eine einheitliche dotMemory-Oberfläche auf allen Betriebssystemen.

Ansicht Creation Stack Trace für Objektinstanzen 2024.3

Wir haben die Ansicht Creation Stack Trace, die bei einer zwischenzeitlichen Überarbeitung der Bedienoberfläche entfernt worden war, wieder eingeführt. Diese Ansicht zeigt die Liste der Funktionsaufrufe, die zur Erstellung eines Objekts geführt haben, um die Ursache von Speicherproblemen einfacher ermitteln zu können.

Ansicht Back Traces für Objektsets 2024.3

Wir haben auch die Ansicht Back Traces für Objektsets neu implementiert. Die invertierte Baumstruktur zeigt die Aufrufkette ausgehend von der Funktion, die eine bestimmte Gruppe von Objekten erstellt hat, und zwar von unten nach oben.

Eiszapfendiagramm für Dominatoren 2024.3

Die Dominator-Baumstruktur kann jetzt als Eiszapfendiagramm angezeigt werden, das den Speicherverbrauch des Dominators und der erhaltenen Objekte darstellt. Diese Funktion ist unter Windows, Linux und macOS sowohl in der eigenständigen Version von dotMemory als auch in JetBrains Rider verfügbar.

Call Tree-Ringdiagramm jetzt für alle Betriebssysteme 2024.3

Die in Version 2024.2 eingeführte Darstellung eines Call Tree als Ringdiagramm ist jetzt unter Windows, Linux und macOS sowohl in der eigenständigen Version von dotMemory als auch in JetBrains Rider verfügbar.

Verbesserte Instanzensuche 2024.2

Wir haben die Ansicht Instances um neue Filteroptionen erweitert:

  • Suche nach Zeichenfolgen: Geben Sie einen beliebigen Text in das Filterfeld ein, und dotMemory hebt die passenden Zeichenfolgen hervor. Damit können Sie spezifische String-Instanzen anhand ihres Inhalts leichter finden.
  • Regex-Unterstützung für Zeichenfolgen: Für eine erweiterte Suche können Sie reguläre Ausdrücke verwenden. ^nAsso.{5,}ID$ findet zum Beispiel nAssociatedObjectID.nAssociatedObjectID.
  • Suche nach Objektadressen: Sie können Objektinstanzen auch anhand ihrer Speicheradresse finden. Dies ist nützlich, um bestimmte Objekte direkt zu verfolgen.

Diese Funktionen sind sowohl in der Standalone-Version von dotMemory als auch in JetBrains Rider verfügbar.

Verbesserungen in dotMemory für Linux und macOS 2024.2

dotMemory für Linux und macOS wurde um Funktionen ergänzt, die bisher nur unter Windows verfügbar waren:

  • Automatische Speicherinspektionen: In dotMemory für Linux und macOS wurde die Inspections-Ansicht eingeführt, die verschiedene automatisch erkannte Speicherprobleme anzeigt.
  • Vergleich von Snapshots aus unterschiedlichen Workspaces: Sie haben jetzt die Möglichkeit, Snapshots aus unterschiedlichen Profiling-Sitzungen zu vergleichen.

Diese Funktionen sind sowohl in der Standalone-Version von dotMemory als auch in JetBrains Rider verfügbar.

Visualisierung von Call Tree in einem Sunburst-Diagramm 2024.2

Die Aufruf-Baumstruktur (Call Tree) kann jetzt als Sunburst-Diagramm dargestellt werden, in dem die speicherintensivsten Funktionen hervorgehoben werden. Die Funktion ist in der Standalone-Version von dotMemory (Linux und macOS) sowie in JetBrains Rider (Windows, Linux und macOS) 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.

Einfachere Navigation zu Tests in JetBrains Rider 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