AIDE .NET

Dottrace .NET Core (Comment ça marche pour les développeurs)

Publié juillet 1, 2024
Partager:

Voici Dottrace .NET Core, un outil puissant dans l'écosystème .NET qui sert d'outil .NET essentiel pour le profilage des performances. En tant que profileur de performance `.NET', l'outil .NET trace permet aux développeurs de capturer des fichiers de trace détaillés qui donnent un aperçu des événements d'exécution d'un processus en cours d'exécution. Cet outil est indispensable pour optimiser les applications construites sur le Framework .NET.

Que vous effectuiez des tests unitaires ou que vous intégriez des builds d'intégration continue, Dottrace vous permet de surveiller et d'analyser efficacement les performances de vos applications. Grâce à cet outil, vous pouvez mieux comprendre le comportement de votre application, ce qui garantit des performances et une fiabilité optimales.

ironPDF est une bibliothèque complète pour travailler avec des PDF dans des applications .NET. Il permet de créer, de modifier et d'extraire le contenu des fichiers PDF. IronPDF prend en charge des fonctions telles que la conversion de HTML en PDF, la fusion et le fractionnement de PDF. Cette bibliothèque est un outil précieux pour toute application qui doit générer ou manipuler des documents PDF. Cet article utilisera cette bibliothèque en conjonction avec Dottrace pour présenter une application réelle de l'efficacité de Dottrace et d'IronPDF.

Démarrer avec Dottrace .NET Core

Configuration de Dottrace .NET Core dans les projets .NET

Tout d'abord, vous devez installer Dottrace .NET Core à l'aide de NuGet. Ouvrez Visual Studio et suivez les étapes suivantes :

  1. Ouvrez Visual Studio.
  2. Sélectionnez Créer un nouveau projet.
  3. Choisissez Application console (.NET Core) et cliquez sur Suivant.
  4. Nommez votre projet DottraceExample et cliquez sur Create.
  5. Dans Solution Explorer, faites un clic droit sur le projet et sélectionnez Manage NuGet Packages.
  6. Dans le gestionnaire de paquets NuGet, recherchez JetBrains.dotTrace.CommandLineTools.
  7. Sélectionnez le paquet et cliquez sur Installer.

    Ceci installe Dottrace comme une dépendance dans votre projet.

    Dottrace .NET Core (Comment ça marche pour les développeurs) : Figure 1 - Le paquet JetBrains.dotTrace à installer

Profilage d'une application console simple

Créons une application console de base pour établir un profil. Remplaçons le code dans Program.cs par ce qui suit :

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.");
    }
}
Imports System
Imports System.Threading
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Console.WriteLine("Starting application...")
		Thread.Sleep(5000) ' Simulating a time-consuming operation
		Console.WriteLine("Application finished.")
	End Sub
End Class
VB   C#

Créez et exécutez votre application en appuyant sur F5. Une fois que l'application est en cours d'exécution, vous aurez besoin de son identifiant de processus pour établir le profil. Vous pouvez trouver l'ID du processus en utilisant la fenêtre Outils de diagnostic de Visual Studio ou en consultant le Gestionnaire de tâches.

Pour profiler votre application à l'aide de Dottrace, ouvrez une fenêtre de terminal ou la console du gestionnaire de paquets dans Visual Studio et exécutez :

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

Remplacez <votre-id-process> par l'ID du processus de votre application en cours d'exécution.

Une fois votre application terminée, vous aurez un fichier trace.nettrace. Ce fichier contient toutes les données de profilage collectées pendant l'exécution de l'application. Vous pouvez analyser ce fichier dans Visual Studio. Procédez comme suit :

  1. Ouvrez Visual Studio.
  2. Allez dans Fichier > Ouvrir > Fichier.
  3. Sélectionnez le fichier trace.nettrace et cliquez sur Ouvrir.

    Visual Studio affiche des données détaillées sur les performances, ce qui vous permet d'identifier et de corriger les goulets d'étranglement.

    Maintenant que vous avez configuré Dottrace et créé un exemple de profilage de base, vous pouvez passer à la mise en œuvre de fonctionnalités plus avancées.

Caractéristiques de la mise en œuvre de Dottrace .NET Core

Analyse de l'utilisation de l'unité centrale

L'une des principales fonctionnalités de Dottrace .NET Core est l'analyse de l'utilisation du processeur. Cela vous aide à identifier les parties de votre code qui consomment le plus de ressources CPU. Voici comment procéder :

Tout d'abord, démarrez votre application dans Visual Studio. Ensuite, dans le terminal ou Package Manager Console, exécutez :

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

Remplacez <votre-process-id> par l'identifiant du processus de votre application. Une fois la session de profilage terminée, ouvrez le fichier cpu_usage.nettrace dans 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");
    }
}
Imports System
Imports System.Diagnostics
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim sw = New Stopwatch()
		sw.Start()
		' Simulate a CPU-intensive operation
		For i As Integer = 0 To 999999999
		Next i
		sw.Stop()
		Console.WriteLine($"Elapsed Time: {sw.ElapsedMilliseconds} ms")
	End Sub
End Class
VB   C#

Ce code simule une opération gourmande en ressources humaines. Lorsque vous analysez le fichier cpu_usage.nettrace, vous verrez que la boucle prend une quantité significative de temps CPU.

Contrôle de l'allocation de mémoire

Dottrace .NET Core peut également vous aider à surveiller l'allocation de la mémoire dans votre application. Ceci est crucial pour identifier les fuites de mémoire et optimiser l'utilisation de la mémoire.

Exécutez votre application et recueillez les données relatives à l'allocation de mémoire :

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

Après la session, ouvrez le fichier memory_allocation.nettrace dans 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.");
    }
}
Imports System
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		For i As Integer = 0 To 9999
			Dim data = New Byte(1023){} ' Allocate 1KB
		Next i
		Console.WriteLine("Memory allocation completed.")
	End Sub
End Class
VB   C#

Ce code alloue de la mémoire dans une boucle. L'analyse du fichier memory_allocation.nettrace montrera combien de mémoire est allouée et où cela se produit dans votre code.

Profilage des opérations d'E/S

Le profilage des opérations d'E/S est une autre caractéristique essentielle. Il vous aide à comprendre l'impact de la lecture et de l'écriture sur les performances des fichiers.

Lancez votre application et collectez les données d'E/S :

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

Ouvrez le fichier io_operations.nettrace dans Visual Studio pour l'analyser :

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.");
    }
}
Imports System
Imports System.IO
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim filePath = "test.txt"
		' Write to file
		Using writer = New StreamWriter(filePath)
			For i As Integer = 0 To 999
				writer.WriteLine("This is a test line.")
			Next i
		End Using
		' Read from file
		Using reader = New StreamReader(filePath)
			Do While reader.ReadLine() IsNot Nothing
			Loop
		End Using
		Console.WriteLine("I/O operations completed.")
	End Sub
End Class
VB   C#

Ce code écrit et lit dans un fichier. L'analyse du fichier io_operations.nettrace révèlera le temps passé sur les opérations d'entrées-sorties.

Identifier les goulets d'étranglement en matière de performances

L'identification des goulets d'étranglement est l'un des principaux objectifs de l'utilisation de Dottrace. En analysant les fichiers de trace collectés, vous pouvez identifier les parties les plus lentes de votre code.

Démarrez votre application et collectez les données de performance :

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

Ouvrez le fichier performance_bottlenecks.nettrace dans 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.");
    }
}
Imports System
Imports System.Threading
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Console.WriteLine("Starting application...")
		' Simulate a time-consuming operation
		Thread.Sleep(5000)
		Console.WriteLine("Application finished.")
	End Sub
End Class
VB   C#

Ce code simule un retard dans l'application. L'analyse du fichier performance_bottlenecks.nettrace montrera où l'on passe le plus de temps, ce qui vous aidera à optimiser ces parties.

Ces exemples couvrent les principales fonctionnalités de Dottrace .NET Core. Vous pouvez désormais analyser l'utilisation du processeur, surveiller l'allocation de la mémoire, établir le profil des opérations d'E/S, identifier les goulets d'étranglement en matière de performances et établir le profil dans les environnements de production. Chaque fonctionnalité vous permet d'optimiser et d'améliorer vos applications .NET Core.

Intégration de Dottrace à IronPDF

Introduction à IronPDF

Dottrace .NET Core (Comment ça marche pour les développeurs) : Figure 2 - Page web d'IronPDF

ironPDF est une puissante bibliothèque .NET qui vous permet de générer, d'éditer et de gérer facilement des fichiers PDF dans vos applications C#. Que vous ayez besoin de créer de nouveaux PDF à partir de zéro, de convertir du HTML en PDF ou de manipuler des PDF existants, IronPDF offre un ensemble riche de fonctionnalités permettant d'accomplir ces tâches efficacement. Il est avantageux pour les applications qui nécessitent la génération et le traitement de PDF, telles que les systèmes de reporting, les solutions de gestion de documents et les applications web.

Cas d'utilisation de la fusion d'IronPDF avec Dottrace

Prenons le cas d'une application web qui génère des rapports PDF pour les utilisateurs. En utilisant Dottrace, vous pouvez suivre les performances du processus de génération de PDF, identifier les problèmes de performance à l'aide du fichier de trace et apporter des améliorations pour améliorer l'expérience de l'utilisateur. Cette intégration est particulièrement précieuse pour les applications qui traitent de gros volumes de documents PDF ou qui nécessitent un traitement très performant.

Exemple de code pour un cas d'utilisation

Vous trouverez ci-dessous un exemple de code complet qui démontre comment intégrer IronPDF avec Dottrace. Cet exemple crée une conversion simple de HTML en PDF et utilise Dottrace pour surveiller les performances de l'opération.

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;
    }
}
Imports System
Imports IronPdf
Imports Microsoft.Diagnostics.Tracing
Imports Microsoft.Diagnostics.Tracing.Session
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Start tracing session
		Using session = New TraceEventSession("MySession")
			session.EnableProvider("Microsoft-Windows-DotNETRuntime")
			' Perform PDF generation
			Dim pdfDocument = GeneratePdf("Hello, world!")
			' Save the PDF to a file
			pdfDocument.SaveAs("example.pdf")
			' Stop tracing session
			session.Stop()
		End Using
		Console.WriteLine("PDF generated and performance traced successfully.")
	End Sub
	Private Shared Function GeneratePdf(ByVal htmlContent As String) As PdfDocument
		' Create an instance of the HtmlToPdf renderer
		Dim renderer = New ChromePdfRenderer()
		' Convert HTML to PDF
		Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
		Return pdfDocument
	End Function
End Class
VB   C#

Dottrace .NET Core (Comment ça marche pour les développeurs) : Figure 3 - Sortie de la console de l'exemple de code précédent

Dans cet exemple, nous commençons par créer une TraceEventSession pour capturer les données de performance à l'aide de Dottrace. Nous générons ensuite un PDF à partir d'une simple chaîne HTML à l'aide d'IronPDF. Après avoir enregistré le PDF, nous arrêtons la session de traçage.

Dottrace .NET Core (Comment ça marche pour les développeurs) : Figure 4 - PDF produit à partir de l'exemple de code précédent

Cela nous permet de surveiller les performances du processus de génération de PDF et de recueillir des informations précieuses sur son exécution.

Conclusion

Dottrace .NET Core (Comment ça marche pour les développeurs) : Figure 5 - Page de licence IronPDF

En intégrant Dottrace à IronPDF, vous pouvez améliorer de manière significative la performance et la fiabilité de vos processus de génération de PDF. Cette intégration fournit des informations précieuses sur la manière dont votre application gère les tâches PDF, ce qui vous permet d'optimiser les opérations et de garantir une expérience utilisateur fluide. IronPDF offre un ensemble complet de fonctionnalités pour travailler avec les PDF, ce qui en fait un outil essentiel pour tout développeur .NET.

IronPDF propose une version d'essai gratuite et des licences à partir de 749 $, ce qui vous permet d'évaluer ses capacités avant de procéder à un achat. La combinaison de la puissance de Dottrace et d'IronPDF peut vous aider à créer des applications performantes et efficaces qui répondent aux besoins de vos utilisateurs.

< PRÉCÉDENT
Exemple C# de Supersocket (Comment ça marche pour les développeurs)
SUIVANT >
C# (Comment ça marche pour les développeurs)