Esta página incluye las actualizaciones y los cambios más recientes en dotMemory.
Prueba gratuita de 30 días disponible
La actualización 2024.3 incluye una serie de pequeñas mejoras en la experiencia y la interfaz de usuario, así como algunos detalles que dan a las versiones de dotMemory en todos los sistemas operativos un aspecto unificado.
Hemos vuelto a incluir la vista Creation Stack Trace, que se había eliminado al rediseñar la interfaz de usuario. Esta vista muestra la pila de llamadas a funciones con la que se creó un objeto, lo que ayuda a identificar mejor la causa de los problemas de memoria.
También hemos vuelto a incluir la vista Back Traces para conjuntos de objetos. Este árbol de llamadas invertido en la vista muestra la cadena de llamadas a partir de la función que creó un determinado conjunto de objetos, desde abajo hacia arriba.
Ahora, el árbol de dominadores se puede mostrar como un gráfico de carámbanos con el consumo de memoria del dominador y los objetos retenidos. Esta funcionalidad está disponible en Windows, Linux y macOS tanto para la versión independiente de dotMemory como para dotMemory en JetBrains Rider.
Desde la versión 2024.2, ya es posible visualizar un Call Tree en forma de gráfico de rayos de sol en Windows, Linux y macOS, tanto para la versión independiente de dotMemory como para dotMemory en JetBrains Rider.
Hemos añadido nuevas opciones de filtrado a la vista Instances:
^nAsso.{5,}ID$
coincide con nAssociatedObjectID.nAssociatedObjectID
. Estas funcionalidades están disponibles tanto en la versión independiente de dotMemory como en la que viene integrada en JetBrains Rider.
La versión de dotMemory para Linux y macOS incluye funcionalidades que antes solo estaban disponibles en Windows:
Estas funcionalidades están disponibles tanto en la versión independiente de dotMemory como en la que viene integrada en JetBrains Rider.
Ahora, Call Tree puede visualizarse como un gráfico de Sunburst, resaltando las funciones que consumen más memoria. La funcionalidad está disponible tanto en la versión independiente de dotMemory (Linux y macOS) como en la integrada en JetBrains Rider (Windows, Linux y macOS).
Ahora, puede generar perfiles de aplicaciones basadas en el marco de trabajo MAUI.
Actualmente, dotMemory es compatible con la generación de perfiles de aplicaciones WinUI orientadas a .NET 7.0+ en Windows.
La compatibilidad está disponible para la versión independiente de dotMemory y para dotMemory integrado en Rider y ReSharper.
.app
) en lugar de archivos ejecutables. net7.0-macos
y net8.0-macos
. La versión independiente de dotMemory en Linux y macOS se acerca más a su homóloga de Windows, ya que incluye:
La información sobre objetos inmutables en Frozen Object Heap se muestra en la línea de tiempo, el diagrama Heap Fragmentation y la vista Generations.
Ahora, puede ejecutar la versión independiente de dotMemory en los sistemas operativos Linux y macOS.
dotMemory ahora le permite importar y analizar volcados de procesos como instantáneas normales en Linux. Tenga en cuenta que la versión Linux de dotMemory solo puede importar volcados recogidos de procesos que se ejecuten en el SO Linux.
Antes de 2023.2, podía utilizar dotMemory en Rider solo para el análisis de la asignación de memoria. En 2023.2, puede recopilar instantáneas de memoria y analizarlas en Rider como en la versión independiente de dotMemory.
Ahora, puede usar dotMemory en CPU ARM64 en Windows. Esto es aplicable a todas las versiones: dotMemory independiente, dotMemory en Rider, dotMemory en Visual Studio y la herramienta de línea de comandos dotMemory.
Ya puede ejecutar el perfilador de línea de comandos dotMemory en CPU ARM32 en Linux. Los marcos compatibles son .NET Core 3.1 y .NET 5.0-7.0.
Además de en Windows, dotMemory ya está disponible para JetBrains Rider en Linux y macOS. Hay dos nuevos modos de generación de perfiles disponibles en el widget Run y en el menú Run | Switch profiler configuration: Memory (sampled allocations) y Memory (full allocations). Puede obtener más información acerca de las diferencias entre estos en la ayuda de dotMemory.
Puede adjuntar el generador de perfiles a un proceso en ejecución desde el menú Run y ver el Timeline Graph desplegarse en tiempo real. Seleccione un intervalo para abrir la vista Memory Allocations, que es la misma que en dotMemory Standalone. Le permite analizar los objetos asignados y el árbol de llamadas de asignación para un periodo de tiempo específico.
Por desgracia, en esta versión todavía no es posible recopilar instantáneas de memoria.
El perfilador de línea de comandos tiene ahora el argumento --saving-mode
, que permite establecer las condiciones para cuándo guardar un espacio de trabajo dotMemory.
Ahora, dotMemory está disponible en JetBrains Rider:
El complemento de dotMemory no permite tomar instantáneas y solo funciona en Windows en la versión 2022.2.
Ahora la herramienta de línea de comandos de dotMemory es compatible con las versiones 3.13-3.15 de Alpine. Se admiten las CPU y los marcos de trabajo siguientes:
Ahora, al obtener una instantánea con la ayuda de la API de generación de perfiles, puede especificar un nombre para la instantánea utilizando DotMemory.GetSnapshot("snapshot name");
El nombre se mostrará en la página Home | Snapshots de dotMemory.
Ahora puede adjuntar el generador de perfiles a una aplicación que esté en ejecución arrastrando el icono especial a la ventana de la aplicación.
Ahora, la herramienta de línea de comandos dotMemory muestra su progreso al guardar una instantánea.
Ahora, la vista Similar Retention procesa los datos mucho más rápido.
La herramienta de línea de comandos dotMemory ahora funciona en equipos con procesadores Apple Silicon. Ahora puede usar dotMemory CLT para generar perfiles de aplicaciones .NET 6 (modo nativo) y .NET 5 (modo Rosetta 2).
Hemos rediseñado por completo el algoritmo del árbol de dominadores (el gráfico de retención de objetos). Incluso si un conjunto de objetos contiene cientos de millones de objetos, dotMemory solo tardará un par de minutos en abrir una vista específica.
Ahora dotMemory puede obtener datos de muestreo de memoria asignada basándose en eventos ETW. En comparación con la forma tradicional (estadística) de recopilar datos de asignación, el muestreo es menos preciso, pero ofrece varias ventajas:
Tenga en cuenta que esta funcionalidad solo está disponible en Windows.
Ahora puede usar la vista Subsystems para analizar datos de memoria asignada. Un subsistema agrupa todos los métodos que pertenecen al mismo tipo, espacio de nombres o ensamblado. En la vista resultante, se muestran objetos creados por los subsistemas y un árbol de llamadas combinado para cada subsistema.
En esta versión, hemos seguido mejorando la forma de analizar la asignación de memoria. Se han añadido dos nuevas pestañas a la vista de asignación de memoria:
La barra de búsqueda, situada en la parte superior de las vistas de dotMemory, es ahora más flexible y fácil de usar:
Ahora es posible:
Ahora es posible utilizar los mensajes de servicio para habilitar y deshabilitar la recogida de datos de asignación de memoria.
Una traza de pila copiada en el portapapeles en dotMemory se abre ahora automáticamente en Rider / Visual Studio con ReSharper.
Hemos renovado por completo la pantalla de inicio de dotMemory: ahora es mucho más sencillo configurar e iniciar nuevas sesiones de creación de perfiles, trabajar con instantáneas y realizar otras operaciones básicas.
Ya puede analizar volcados de aplicaciones .NET Core recogidos en los sistemas Linux utilizando gcore
.
Ahora, dotMemory le permite analizar la memoria asignada en un intervalo de tiempo arbitrario. Seleccione el intervalo en la escala de tiempo y la vista Memory Allocation le mostrará los objetos asignados en este intervalo, así como la traza de pila que los asignó.
Prueba gratuita de 30 días disponible