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.
Kostenlose 30-Tage-Testversion 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