Novedades de dotMemory

Esta página incluye las actualizaciones y los cambios más recientes en dotMemory.

Descargar dotMemory

Prueba gratuita de 30 días disponible

Interfaz de usuario 2024.3

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.

Vista Creation Stack Trace para instancias de objetos 2024.3

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.

Vista Back Traces para conjuntos de objetos 2024.3

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.

Posibilidad de visualizar los dominadores con un gráfico de carámbanos 2024.3

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.

Disponibilidad de Call Tree en forma de gráfico de rayos de sol en todos los SO 2024.3

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.

Búsqueda mejorada de instancias 2024.2

Hemos añadido nuevas opciones de filtrado a la vista Instances:

  • Búsqueda por valor de cadena: escriba cualquier valor de cadena en el campo de filtro y dotMemory resaltará las cadenas que coincidan. Esto facilita la búsqueda de instancias de cadena específicas según su contenido.
  • Compatibilidad con expresiones regulares para valores de cadena: utilice expresiones regulares para realizar búsquedas más avanzadas. Por ejemplo, ^nAsso.{5,}ID$ coincide con nAssociatedObjectID.nAssociatedObjectID.
  • Búsqueda por dirección de objeto: también puede buscar instancias de objetos por su dirección de memoria. Esto es útil para rastrear objetos específicos directamente.

Estas funcionalidades están disponibles tanto en la versión independiente de dotMemory como en la que viene integrada en JetBrains Rider.

Improvements in dotMemory for Linux and macOS 2024.2

La versión de dotMemory para Linux y macOS incluye funcionalidades que antes solo estaban disponibles en Windows:

  • Inspecciones automáticas de memoria: dotMemory para Linux y macOS dispone de la vista Inspections, que muestra varios problemas de memoria detectados de forma automática.
  • Comparación de instantáneas entre espacios de trabajo: ahora, puede comparar instantáneas de diferentes sesiones de generación de perfiles.

Estas funcionalidades están disponibles tanto en la versión independiente de dotMemory como en la que viene integrada en JetBrains Rider.

Visualización de Call Tree con gráficos de Sunburst 2024.2

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).

Compatibilidad con aplicaciones MAUI

Compatibilidad con aplicaciones MAUI 2024.1

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.

Compatibilidad mejorada con macOS 2024.1

  • Ahora, la versión independiente de dotMemory permite especificar paquetes de aplicaciones (.app) en lugar de archivos ejecutables.
  • dotMemory en Rider puede generar perfiles para las configuraciones de ejecución de macOS. Son compatibles los siguientes marcos de trabajo de destino: net7.0-macos y net8.0-macos.
Nuevas vistas en dotMemory para Linux y macOS

Nuevas vistas en dotMemory para Linux y macOS 2024.1

La versión independiente de dotMemory en Linux y macOS se acerca más a su homóloga de Windows, ya que incluye:

  • La vista Similar Retention para analizar conjuntos de objetos
  • El diagrama Sunburst para analizar objetos dominadores

Compatibilidad con Frozen Object Heap 2024.1

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.

dotMemory independiente en Linux y macOS 2023.3 Beta

Ahora, puede ejecutar la versión independiente de dotMemory en los sistemas operativos Linux y macOS.

Analizar volcados de procesos en Linux 2023.3

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.

Snapshot analysis in JetBrains Rider 2023.2

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.

  • El análisis de instantáneas está disponible en Windows, Linux y macOS.
  • En Windows, también puede importar y analizar volcados de procesos.
  • Algunas funcionalidades y vistas no están disponibles, por ejemplo, las inspecciones automáticas de instantáneas y las vistas de trazas de pila de creación.

Compatibilidad con Windows ARM64 2022.3

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.

Compatibilidad con Linux ARM32 2022.3

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.

dotMemory en JetBrains Rider 2022.3

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.

Mejoras en el perfilador de línea de comandos de dotMemory 2022.3

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.

dotMemory en JetBrains Rider 2022.2

Ahora, dotMemory está disponible en JetBrains Rider:

  • Hay dos nuevos modos de generación de perfiles disponibles en el widget Run y Run | Switch profiler configurations en el menú principal: 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.
  • Observe cómo se desarrolla el Timeline Graph en tiempo real seleccionando un intervalo y abriendo la vista Memory Allocation. Equivale a la misma vista en la versión independiente de dotMemory y permite profundizar en el análisis de un marco temporal concreto.

El complemento de dotMemory no permite tomar instantáneas y solo funciona en Windows en la versión 2022.2.

Compatibilidad con las distribuciones de Linux basadas en musl 2022.1

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:

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

Mejora de la API de generación de perfiles 2022.1

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.

Adjuntar a las aplicaciones usando arrastrar y soltar 2022.1

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.

Mejora de la herramienta de línea de comandos 2022.1

Ahora, la herramienta de línea de comandos dotMemory muestra su progreso al guardar una instantánea.

Mejora del rendimiento de la vista Similar Retention 2022.1

Ahora, la vista Similar Retention procesa los datos mucho más rápido.

Compatibilidad con procesadores Apple Silicon 2021.3

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).

Mejoras de rendimiento 2021.3

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.

Muestreo de datos de memoria asignada 2021.3

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:

  • Los datos de asignación de muestreo se recopilan sin afectar al rendimiento.
  • No es necesario habilitar esta recopilación de datos de forma explícita, ya que siempre está activada.
  • Los datos de asignación de muestreo también se pueden recopilar al conectar el generador de perfiles a una aplicación que esté ejecutándose.

Tenga en cuenta que esta funcionalidad solo está disponible en Windows.

Vista Subsystems 2021.3

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.

Actualizaciones en el análisis de la asignación de memoria 2021.2

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 pestaña Methods le permite analizar una lista simple de métodos que tienen memoria asignada.
  • La pestaña Call Tree le permite analizar el árbol de llamadas de asignación. Cada nodo del árbol muestra no solo el método llamado sino también los objetos asignados por la llamada.

Filtros mejorados 2021.2

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:

  • Los filtros cuentan con opciones adicionales para restringir el alcance de la búsqueda: #struct (busca solo en tipos de valores), #c (solo en tipos), #m (solo en métodos), #ns (solo en espacios de nombre).
  • Puede obtener ayuda para todos los filtros posibles en un contexto determinado.

Exportación de objetos mejorada 2021.2

Ahora es posible:

  • Especificar la profundidad de recorrido al exportar los datos de los objetos.
  • Seleccionar uno o varios tipos y exportar sus datos a un único archivo.
  • Exportar datos de objetos de las vistas Instances, Outgoing References y Unreachable Objects.

Actualización del generador de perfiles de la consola 2021.2

Ahora es posible utilizar los mensajes de servicio para habilitar y deshabilitar la recogida de datos de asignación de memoria.

Copiar traza de pila en el portapapeles 2021.2

Una traza de pila copiada en el portapapeles en dotMemory se abre ahora automáticamente en Rider / Visual Studio con ReSharper.

Nueva pantalla de inicio 2021.1

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.

Compatibilidad con volcados Linux

Compatibilidad con volcados Linux 2021.1

Ya puede analizar volcados de aplicaciones .NET Core recogidos en los sistemas Linux utilizando gcore.

Análisis de memorias asignadas mejorado

Análisis de memorias asignadas mejorado  2021.1

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ó.

Descargar dotMemory

Prueba gratuita de 30 días disponible