AYUDA .NET

Dottrace .NET Core (Cómo funciona para desarrolladores)

Regan Pun
Regan Pun
1 de julio, 2024
Compartir:

Presentamos Dottrace .NET Core, una potente herramienta del ecosistema .NET que sirve como herramienta esencial .NET para la creación de perfiles de rendimiento. Como perfilador de rendimiento de .NET, la herramienta de rastreo de .NET permite a los desarrolladores capturar archivos de rastreo detallados que proporcionan información sobre los eventos en tiempo de ejecución de un proceso en ejecución. Esta herramienta es indispensable para optimizar las aplicaciones creadas en el marco .NET.

Tanto si está realizando pruebas unitarias como integrando compilaciones de integración continua, Dottrace le permite supervisar y analizar eficazmente el rendimiento de sus aplicaciones. Aprovechando esta herramienta, puede obtener un conocimiento más profundo del comportamiento de su aplicación, garantizando el máximo rendimiento y fiabilidad.

ironPDF es una completa biblioteca para trabajar con archivos PDF en aplicaciones .NET. Permite crear, editar y extraer contenido de archivos PDF. IronPDF admite funciones como la conversión de HTML a PDF, la fusión y la división de PDF. Esta biblioteca es una valiosa herramienta para cualquier aplicación que necesite generar o manipular documentos PDF. Este artículo utilizará esta biblioteca junto con Dottrace para expresar una aplicación real de la eficacia de Dottrace y IronPDF.

Primeros pasos con Dottrace .NET Core

Configuración de Dottrace .NET Core en proyectos .NET

En primer lugar, debe instalar Dottrace .NET Core mediante NuGet. Abra Visual Studio y siga estos pasos:

  1. Abre Visual Studio.

  2. Seleccione Crear un nuevo proyecto.

  3. Seleccione Console App(.NET Core) y haga clic en Siguiente.

  4. Nombra tu proyecto DottraceExample y haz clic en Crear.

  5. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y seleccione Administrar paquetes NuGet.

  6. En el gestor de paquetes NuGet, busque JetBrains.dotTrace.CommandLineTools.

  7. Seleccione el paquete y haga clic en Instalar.

    Esto instala Dottrace como una dependencia en su proyecto.

    Dottrace .NET Core(Cómo funciona para los desarrolladores): Figura 1 - El paquete JetBrains.dotTrace a instalar

Creación de perfiles de una aplicación de consola sencilla

Vamos a crear una aplicación de consola básica para perfilar. Reemplaza el código en Program.cs con lo siguiente:

using System;
using System.Threading;
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Starting application...");
        Thread.Sleep(5000); // Simulating a time-consuming operation
        Console.WriteLine("Application finished.");
    }
}
using System;
using System.Threading;
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Starting application...");
        Thread.Sleep(5000); // Simulating a time-consuming operation
        Console.WriteLine("Application finished.");
    }
}

Construye y ejecuta tu aplicación pulsando F5. Una vez que la aplicación se esté ejecutando, necesitará su ID de proceso para la creación de perfiles. Puede encontrar el ID del proceso utilizando la ventana Herramientas de diagnóstico de Visual Studio o consultando el Administrador de tareas.

Para perfilar su aplicación utilizando Dottrace, abra una ventana de terminal o la Consola del Gestor de Paquetes en Visual Studio y ejecute:

dotnet trace collect --process-id <your-process-id> --output trace.nettrace

Sustituya <su-id-proceso> por el ID real del proceso de su aplicación en ejecución.

Una vez finalizada tu aplicación, tendrás un fichero trace.nettrace. Este archivo contiene todos los datos de perfil recogidos durante la ejecución de la aplicación. Puede analizar este archivo en Visual Studio. Sigue estos pasos:

  1. Abre Visual Studio.

  2. Vaya a Archivo > Abrir > Archivo.

  3. Seleccione el archivo trace.nettrace y haga clic en Abrir.

    Visual Studio mostrará datos de rendimiento detallados, lo que le permitirá identificar y solucionar los cuellos de botella en el rendimiento.

    Ahora que ha configurado Dottrace y creado un ejemplo básico de creación de perfiles, puede pasar a implementar funciones más avanzadas.

Características de Dottrace .NET Core

Análisis del uso de la CPU

Una de las características clave de Dottrace .NET Core es el análisis del uso de la CPU. Esto le ayuda a identificar qué partes de su código consumen más recursos de CPU. He aquí cómo hacerlo:

En primer lugar, inicie su aplicación en Visual Studio. A continuación, en el terminal o Consola del Gestor de Paquetes, ejecute:

dotnet trace collect --process-id <your-process-id> --output cpu_usage.nettrace

Sustituya <su-id-proceso> por el ID real del proceso de su aplicación. Una vez finalizada la sesión de perfilado, abra el archivo cpu_usage.nettrace en Visual Studio:

using System;
using System.Diagnostics;
class Program
{
    static void Main(string[] args)
    {
        var sw = new Stopwatch();
        sw.Start();
        // Simulate a CPU-intensive operation
        for (int i = 0; i < 1000000000; i++) { }
        sw.Stop();
        Console.WriteLine($"Elapsed Time: {sw.ElapsedMilliseconds} ms");
    }
}
using System;
using System.Diagnostics;
class Program
{
    static void Main(string[] args)
    {
        var sw = new Stopwatch();
        sw.Start();
        // Simulate a CPU-intensive operation
        for (int i = 0; i < 1000000000; i++) { }
        sw.Stop();
        Console.WriteLine($"Elapsed Time: {sw.ElapsedMilliseconds} ms");
    }
}

Este código simula una operación intensiva de la CPU. Cuando analices el archivo cpu_usage.nettrace, verás que el bucle consume una cantidad significativa de tiempo de CPU.

Supervisión de la asignación de memoria

Dottrace .NET Core también puede ayudarle a supervisar la asignación de memoria en su aplicación. Esto es crucial para identificar fugas de memoria y optimizar su uso.

Ejecute su aplicación y recopile los datos de asignación de memoria:

dotnet trace collect --process-id <your-process-id> --output memory_allocation.nettrace

Después de la sesión, abra el archivo memory_allocation.nettrace en Visual Studio:

using System;
class Program
{
    static void Main(string[] args)
    {
        for (int i = 0; i < 10000; i++)
        {
            var data = new byte[1024]; // Allocate 1KB
        }
        Console.WriteLine("Memory allocation completed.");
    }
}
using System;
class Program
{
    static void Main(string[] args)
    {
        for (int i = 0; i < 10000; i++)
        {
            var data = new byte[1024]; // Allocate 1KB
        }
        Console.WriteLine("Memory allocation completed.");
    }
}

Este código asigna memoria en un bucle. El análisis del archivo memory_allocation.nettrace mostrará cuánta memoria se asigna y dónde ocurre en su código.

Creación de perfiles de operaciones de E/S

Otra característica esencial es la creación de perfiles de las operaciones de E/S. Le ayuda a comprender el impacto en el rendimiento de la lectura y escritura de archivos.

Inicia tu aplicación y recoge los datos de E/S:

dotnet trace collect --process-id <your-process-id> --output io_operations.nettrace

Abra el archivo io_operations.nettrace en Visual Studio para analizarlo:

using System;
using System.IO;
class Program
{
    static void Main(string[] args)
    {
        var filePath = "test.txt";
        // Write to file
        using (var writer = new StreamWriter(filePath))
        {
            for (int i = 0; i < 1000; i++)
            {
                writer.WriteLine("This is a test line.");
            }
        }
        // Read from file
        using (var reader = new StreamReader(filePath))
        {
            while (reader.ReadLine() != null) { }
        }
        Console.WriteLine("I/O operations completed.");
    }
}
using System;
using System.IO;
class Program
{
    static void Main(string[] args)
    {
        var filePath = "test.txt";
        // Write to file
        using (var writer = new StreamWriter(filePath))
        {
            for (int i = 0; i < 1000; i++)
            {
                writer.WriteLine("This is a test line.");
            }
        }
        // Read from file
        using (var reader = new StreamReader(filePath))
        {
            while (reader.ReadLine() != null) { }
        }
        Console.WriteLine("I/O operations completed.");
    }
}

Este código escribe y lee de un archivo. El análisis del archivo io_operations.nettrace revelará el tiempo empleado en las operaciones de E/S.

Identificación de cuellos de botella en el rendimiento

Identificar los cuellos de botella en el rendimiento es uno de los principales objetivos del uso de Dottrace. Analizando los archivos de rastreo recopilados, puede localizar las partes lentas de su código.

Inicie su aplicación y recopile datos de rendimiento:

dotnet trace collect --process-id <your-process-id> --output performance_bottlenecks.nettrace

Abra el archivo performance_bottlenecks.nettrace en Visual Studio:

using System;
using System.Threading;
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Starting application...");
        // Simulate a time-consuming operation
        Thread.Sleep(5000);
        Console.WriteLine("Application finished.");
    }
}
using System;
using System.Threading;
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Starting application...");
        // Simulate a time-consuming operation
        Thread.Sleep(5000);
        Console.WriteLine("Application finished.");
    }
}

Este código simula un retraso en la aplicación. El análisis del archivo performance_bottlenecks.nettrace mostrará dónde se emplea la mayor parte del tiempo, lo que le ayudará a optimizar esas partes.

Estos ejemplos cubren las características clave de Dottrace .NET Core. Ahora puede analizar el uso de la CPU, supervisar la asignación de memoria, perfilar las operaciones de E/S, identificar cuellos de botella en el rendimiento y realizar perfiles en entornos de producción. Cada función le ayuda a optimizar y mejorar sus aplicaciones .NET Core.

Integración de Dottrace con IronPDF

Introducción a IronPDF

Dottrace .NET Core(Cómo funciona para los desarrolladores): Figura 2 - Página web de IronPDF

ironPDF es una potente biblioteca .NET que le permite generar, editar y gestionar archivos PDF fácilmente en sus aplicaciones C#. Tanto si necesita crear nuevos PDF desde cero, convertir HTML a PDF o manipular PDF existentes, IronPDF le ofrece un amplio conjunto de funciones para realizar estas tareas con eficacia. Es beneficioso para las aplicaciones que requieren la generación y el procesamiento de PDF, como los sistemas de generación de informes, las soluciones de gestión de documentos y las aplicaciones web.

Caso práctico de fusión de IronPDF con Dottrace

Considere un escenario en el que tiene una aplicación web que genera informes PDF para los usuarios. Mediante el uso de Dottrace, puede realizar un seguimiento del rendimiento del proceso de generación de PDF, identificar problemas de rendimiento utilizando el archivo de seguimiento y realizar mejoras para mejorar la experiencia del usuario. Esta integración es especialmente valiosa para aplicaciones que manejan grandes volúmenes de documentos PDF o requieren un procesamiento de alto rendimiento.

Ejemplo de código del caso de uso

A continuación se muestra un ejemplo de código completo que demuestra cómo integrar IronPDF con Dottrace. Este ejemplo crea una simple conversión de HTML a PDF y utiliza Dottrace para monitorizar el rendimiento de la operación.

using System;
using IronPdf;
using Microsoft.Diagnostics.Tracing;
using Microsoft.Diagnostics.Tracing.Session;
class Program
{
    static void Main(string[] args)
    {
        // Start tracing session
        using (var session = new TraceEventSession("MySession"))
        {
            session.EnableProvider("Microsoft-Windows-DotNETRuntime");
            // Perform PDF generation
            var pdfDocument = GeneratePdf("Hello, world!");
            // Save the PDF to a file
            pdfDocument.SaveAs("example.pdf");
            // Stop tracing session
            session.Stop();
        }
        Console.WriteLine("PDF generated and performance traced successfully.");
    }
    static PdfDocument GeneratePdf(string htmlContent)
    {
        // Create an instance of the HtmlToPdf renderer
        var renderer = new ChromePdfRenderer();
        // Convert HTML to PDF
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        return pdfDocument;
    }
}
using System;
using IronPdf;
using Microsoft.Diagnostics.Tracing;
using Microsoft.Diagnostics.Tracing.Session;
class Program
{
    static void Main(string[] args)
    {
        // Start tracing session
        using (var session = new TraceEventSession("MySession"))
        {
            session.EnableProvider("Microsoft-Windows-DotNETRuntime");
            // Perform PDF generation
            var pdfDocument = GeneratePdf("Hello, world!");
            // Save the PDF to a file
            pdfDocument.SaveAs("example.pdf");
            // Stop tracing session
            session.Stop();
        }
        Console.WriteLine("PDF generated and performance traced successfully.");
    }
    static PdfDocument GeneratePdf(string htmlContent)
    {
        // Create an instance of the HtmlToPdf renderer
        var renderer = new ChromePdfRenderer();
        // Convert HTML to PDF
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        return pdfDocument;
    }
}

Dottrace .NET Core(Cómo funciona para desarrolladores): Figura 3 - Salida de la consola del ejemplo de código anterior

En este ejemplo, empezamos creando una TraceEventSession para capturar datos de rendimiento utilizando Dottrace. A continuación, generamos un PDF a partir de una simple cadena HTML utilizando IronPDF. Después de guardar el PDF, detenemos la sesión de rastreo.

Dottrace .NET Core(Cómo funciona para desarrolladores): Figura 4 - PDF resultante del ejemplo de código anterior

Esto nos permite supervisar el rendimiento del proceso de generación de PDF y obtener información valiosa sobre su ejecución.

Conclusión

Explora laOpciones de licencia de IronPDF para conocer las licencias disponibles y sus respectivos precios.

Al integrar Dottrace con IronPDF, puede mejorar significativamente el rendimiento y la fiabilidad de sus procesos de generación de PDF. Esta integración proporciona información valiosa sobre el modo en que su aplicación gestiona las tareas de PDF, lo que le ayuda a optimizar las operaciones y a garantizar una experiencia de usuario fluida. IronPDF ofrece un completo conjunto de funciones para trabajar con archivos PDF, lo que lo convierte en una herramienta esencial para cualquier desarrollador .NET.

IronPDF ofrece una prueba gratuita, y las licencias comienzan desde $749, lo que le permite evaluar sus capacidades antes de realizar una compra. La combinación de la potencia de Dottrace e IronPDF puede ayudarle a crear aplicaciones eficientes y de alto rendimiento que satisfagan las necesidades de sus usuarios.

Regan Pun
Ingeniero de software
Regan se licenció en Ingeniería Electrónica por la Universidad de Reading. Antes de incorporarse a Iron Software, sus anteriores puestos de trabajo le obligaban a centrarse en tareas concretas; lo que más le gusta de Iron Software es la variedad de tareas que puede realizar, ya sea añadiendo valor a las ventas, el soporte técnico, el desarrollo de productos o el marketing. Le gusta entender cómo utilizan los desarrolladores la biblioteca de Iron Software y utilizar ese conocimiento para mejorar continuamente la documentación y desarrollar los productos.
< ANTERIOR
Ejemplo de Supersocket en C# (Cómo funciona para desarrolladores)
SIGUIENTE >
Deedle C# (Cómo funciona para desarrolladores)