Auf dieser Seite stellen wir Ihnen die neuesten Updates und Änderungen in dotMemory vor.
Kostenlose 30-Tage-Testversion verfügbar
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.
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.
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.
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.
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.
Wir haben die Ansicht Instances um neue Filteroptionen erweitert:
^nAsso.{5,}ID$
findet zum Beispiel nAssociatedObjectID.nAssociatedObjectID
. Diese Funktionen sind sowohl in der Standalone-Version von dotMemory als auch in JetBrains Rider verfügbar.
dotMemory für Linux und macOS wurde um Funktionen ergänzt, die bisher nur unter Windows verfügbar waren:
Diese Funktionen sind sowohl in der Standalone-Version von dotMemory als auch in JetBrains Rider verfügbar.
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.
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.
.app
) statt Programmdateien auswählen. net7.0-macos
, net8.0-macos
. Die eigenständige Version von dotMemory unter Linux und macOS nähert sich mit den folgenden Neuerungen seinem Windows-Pendant an:
Informationen über unveränderliche Objekte im Frozen Object Heap werden in der Timeline, im Heap Fragmentation-Diagramm und in der Generations-Ansicht angezeigt.
Sie können die eigenständige Version von dotMemory jetzt auch auf den Betriebssystemen Linux und macOS ausführen.
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.
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.
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.
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 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.
Der Befehlszeilenprofiler erkennt jetzt das Argument --saving-mode
, mit dem Sie festlegen können, unter welchen Bedingungen ein dotMemory-Workspace gespeichert werden soll.
dotMemory ist jetzt direkt in JetBrains Rider verfügbar:
Das dotMemory-Plugin kann keine Snapshots erfassen und funktioniert in der Version 2022.2 nur unter Windows.
Das dotMemory-Befehlszeilentool unterstützt jetzt die Alpine-Versionen 3.13–3.15. Die folgenden CPUs und Frameworks werden unterstützt:
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.
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.
Das dotMemory-Befehlszeilentool zeigt jetzt beim Speichern eines Snapshots den Fortschritt an.
In der Similar Retention-Ansicht wurde die Datenverarbeitung erheblich beschleunigt.
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.
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.
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:
Bitte beachten Sie, dass diese Funktion nur unter Windows verfügbar ist.
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.
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:
Die Suchleiste am oberen Rand von dotMemory-Ansichten ist jetzt flexibler und einfacher zu verwenden:
Die folgenden Möglichkeiten sind neu hinzugekommen:
Das Sammeln von Speicherallokationsdaten kann jetzt mit Servicenachrichten aktiviert oder deaktiviert werden.
Wenn Sie in dotMemory ein Stack-Trace in die Zwischenablage kopieren, wird es nun automatisch in Rider oder Visual Studio mit ReSharper geöffnet.
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.
Jetzt können Sie Dumps von .NET-Core-Anwendungen analysieren, die auf Linux-Systemen mit gcore
erfasst wurden.
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.
Kostenlose 30-Tage-Testversion verfügbar