dotTrace es un perfilador de rendimiento para aplicaciones .NET que funciona directamente dentro de Visual Studio / JetBrains Rider y ofrece excelentes formas de detectar y analizar cuellos de botella de rendimiento. Siga leyendo para conocer más detalles.
dotTrace le ayuda a encontrar los cuellos de botella de rendimiento en una variedad de aplicaciones .NET, incluidas aplicaciones para escritorio, .NET Core, aplicaciones ASP.NET alojadas en servidores web IIS o IIS, aplicaciones Mono y Unity, servicios WCF, servicios Windows, aplicaciones de Universal Windows Platform y pruebas de unidad.
dotTrace le permite perfilar aplicaciones basadas en cualquier versión compatible de .NET Framework, .NET Core, .NET, Mono 5.10 o posterior y Unity 2018.3 o posterior.
A diferencia de la generación de perfiles de rendimiento "clásico" que solo le permite medir el tiempo de ejecución de llamadas a métodos, la generación de perfiles de línea de tiempo muestra cómo se distribuyen las llamadas a lo largo del tiempo.
Al vincular los datos de llamadas a métodos con una línea de tiempo, este modo de generación de perfiles va más allá de simplemente detectar el método más lento: permite diagnosticar problemas de rendimiento en los que importa el orden de eventos, tales como bloqueos de la interfaz de usuario, recolección excesiva de basura, distribución dispar de la carga de trabajo, entrada/salida ineficiente de archivos y más.
Sin embargo, los modos de generación de perfiles tradicionales aún están disponibles en dotTrace. La generación de perfiles por muestreo es la forma más fácil de evaluar el rendimiento general de una aplicación, mientras que los modos de generación de perfiles de seguimiento y línea por línea son ideales cuando necesita detalles sobre cómo funciona por dentro un algoritmo en particular.
Puede partir y ordenar los datos de generación de perfiles usando filtros, el árbol de llamadas o diagramas. Al aplicar filtros, obtendrá un conjunto de intervalos de tiempo seleccionados por una condición específica. La forma en que funciona es muy similar a ejecutar una consulta en una base de datos para obtener exactamente los datos que necesita.
Por ejemplo, para saber si un bloqueo de interfaz de usuario se da por un bloqueo de recolección de basura, puede solicitar a dotTrace que seleccione todos los intervalos de tiempo del subproceso principal en los que ocurrió el bloqueo de la interfaz de usuario y en los que se realizó un bloqueo de la recolección de basura. Aunque esto suene complicado, esta combinación de filtros se puede realizar con solo un par de clics.
dotTrace está integrado en Visual Studio, lo que le permite empezar a perfilar las aplicaciones en las que está trabajando sin salir del IDE. Utilizando el complemento dotTrace en Rider, puede realizar un perfilado de rendimiento con un límite de rango temporal, perfilar métodos estáticos, pruebas de unidad, procesos en ejecución, aplicaciones remotas y mucho más.
Su integración con Visual Studio y JetBrains Rider hace que la experiencia de generación de perfiles sea prácticamente perfecta, ya que no hay que alternar entre el IDE y el perfilador.
dotTrace le permite analizar fácilmente el código asíncrono: todas las "partes" de una llamada async
se muestran en un mismo lugar, para que no tenga que buscarlas en diferentes pilas de llamadas.
dotTrace le permite perfilar instantáneamente cualquier método estático de su código. Tan solo coloque el signo de intercalación en el método, presione Alt+Intro y seleccione Debug | Profile en la lista de acciones.
Imagínese todo lo que podrá hacer con esta funcionalidad. ¡Podrá perfilar cualquier parte de su código en su lugar apenas lo escriba! No es necesario compilar su solución, ejecutarla bajo el perfilador, realizar un escenario de uso que ejecute su nuevo código, etc.
La mayor parte del tiempo necesitará perfilar aplicaciones que se ejecutan localmente. Sin embargo, ¿qué pasa si tiene una aplicación lenta en un servidor web remoto?
dotTrace puede conectarse a una máquina remota para perfilar una aplicación independiente o web, o un servicio Windows. Ni siquiera necesitará instalar dotTrace allí: solo copie algunos archivos.
dotTrace se puede acoplar a una aplicación en ejecución para su perfilado, y desacoplar en cuanto se hayan capturado los datos de perfilado.
Esto minimiza la sobrecarga impuesta al ejecutar una aplicación bajo el perfilador. Lo que es más importante, permite investigar problemas de rendimiento en entornos de producción, en los que no puede permitirse reiniciar la aplicación cada vez que necesita hacerle un perfilado.
Si tiene un paquete de Visual Studio + ReSharper* o JetBrains Rider**, puede comenzar a perfilar pruebas de unidad fácilmente desde el editor de código o un ejecutor de pruebas de unidad.
* Incluso si no tiene ReSharper instalado, igual puede perfilar un ejecutor de pruebas de unidad nativo provisto por NUnit, MSTest o xUnit.
** Las funciones de perfilado solo están disponibles para los propietarios de licencias dotUltimate o All Products Pack.
Al analizar copias instantáneas de volumen de generación de perfiles, puede filtrar intervalos de tiempo en los que su aplicación web procesa solicitudes HTTP entrantes. Obtenga los datos exactos, determine la raíz del problema y céntrese en los métodos que funcionan lento. Acelere sus aplicaciones web con la generación de perfiles de línea de tiempo.
Use la generación de perfiles de línea de tiempo para analizar cómo afecta al rendimiento de la aplicación cada consulta particular. El filtro SQL Queries muestra todas las consultas SQL y las conexiones SQL junto con sus estadísticas de rendimiento.
Para su conveniencia, los contenidos de las consultas pueden abrirse en una ventana separada para su análisis posterior. Aún podrá filtrar todos los datos eligiendo una o varias consultas e investigar los métodos desde los que se ejecutaron.
¡No más consultas SQL ineficaces!
El SDK de generación de perfiles le permite controlar una sesión de perfilado directamente desde su código: inicie y detenga la recolección de datos de perfilado, guarde copias instantáneas de volumen recolectadas, etc. Todo mediante programación.
Esto permite dos escenarios de uso de variables. Primero, puede usar el SDK para acotar el alcance del perfilado y elegir qué partes de su código perfilar. El segundo escenario de uso son las aplicaciones autoperfiladas: puede recolectar estadísticas que muestran cómo se comporta su aplicación en máquinas de usuario final.
dotTrace incluye herramientas de perfilado para línea de comandos que se pueden usar para automatizar la recolección de copias instantáneas de volumen de perfilado, lo que es fundamental si quiere hacer del perfilado parte de sus compilaciones de Integración continua.
Si utiliza JetBrains TeamCity como su servidor de Integración continua, asegúrese de instalar el complemento dotTrace en TeamCity. El complemento le ayuda a evitar la degradación del rendimiento de las aplicaciones al perfilar las pruebas de integración. Lo único que necesita es definir un umbral para el tiempo de ejecución de la prueba y, si este se supera, el complemento tomará automáticamente instantáneas de rendimiento y hará fallar la prueba.
A veces, después de horas de optimizar una función que consume mucho tiempo, los desarrolladores deben comenzar el profiling desde cero para ver si su optimización realmente funcionó.
Esto no es un problema con dotTrace. El perfilador puede recalcular instantáneamente todos los tiempos de funciones en una copia instantánea de volumen, a partir de un ajuste de tiempo definido por usted sin volver a perfilar su aplicación. Es como preguntarle al perfilador: "¿qué tal si optimizo esta función un 40 %?" Simplemente especifique un nuevo tiempo para una función o para todas las funciones de una clase específica. Se volverán a calcular los valores de tiempos para todas las copias instantáneas de volumen.
dotTrace puede comparar dos instantáneas de rendimiento cualesquiera de la misma aplicación. Generará una instantánea de comparación que muestra la diferencia en el número de llamadas y tiempos consumidos por cada función. Las instantáneas de comparación se pueden ver y analizar de la misma forma que sus instantáneas de rendimiento comunes.
Prueba gratuita de 30 días disponible