Resumen del visualizador de concurrencia

  • Es una extensión opcional para Visual Studio creada por Microsoft, que puedes descargar aquí: Visualizador de Concurrencia
  • Utiliza la utilidad de línea de comandos del visualizador de concurencia (CVCollectionCmd) para recopilar seguimientos. Esta herramienta del CMD se puede utilizar para recopilar datos en equipos que no tienen instalado Visual Studio.
  • El visualizador de concurrencia se puede utilizar para ver el rendimiento de una aplicación con multiples thread.s Nos da graficas, tablas e información sobre el programa, lo que nos permite localizar cuellos de botella en el rendimiento, analizar la utilización de la CPU, etc.

Si no quieres usas esta herramienta os ofrezco otra posibilidad:

BenchmarkDotNet que tiene el ConcurrencyVisualizerProfiler que puede exportar un archivo CvTrace que se puede analizar en Visual Studio.

Para ejecutar la herramienta una vez instalada:

  1. Inicia el programa y hace un estudio.
  2. Puedes enlazar un proceso (un programa ya iniciado) para realizar su análisis.
  3. Puedes abrir un fichero de análisis anterior.

Estas son las opciones básicas que tienes que concocer para ponerte manos a la obra.

A continuación alguna captura de un análisis de una aplicación:

Por último un pequeño ejemplo para que puedas probar esta herramienta:

var thread1 = new Thread(DoSomething);
var thread2 = new Thread(DoSomething);
var thread3 = new Thread(DoSomething);
var thread4 = new Thread(DoSomething);
var thread5 = new Thread(DoSomething);

Console.WriteLine("End test...");

static void DoSomething(object obj)
{
    var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));
    while (!cts.IsCancellationRequested)
    {
        
    }
}

Es una aplicación de consola desarrollada en .Net6