AIDE .NET

C# Stopwatch (Comment cela fonctionne pour les développeurs)

Dans le vaste paysage des langages de programmation, C# se distingue comme un langage polyvalent et puissant utilisé pour développer un large éventail d'applications, des ordinateurs de bureau aux applications web et mobiles. L'une des principales caractéristiques qui font de C# l'un des logiciels préférés des développeurs est son riche ensemble de bibliothèques et de classes, qui offrent des solutions à divers problèmes de programmation. Parmi ceux-ci, la classe Stopwatch occupe une place particulière pour son rôle dans la mesure du temps précise, le profilage et l'analyse des performances.

Dans cet article, nous verrons comment utiliser l'objet Stopwatch en C# pour trouver le temps nécessaire à l'exécution d'une tâche spécifique à l'aide de la propriété publique TimeSpan Elapsed. De plus, nous mesurerons le temps total écoulé pour la création du PDF en utilisant IronPDF for C# Developers.

1. Qu'est-ce que la classe Chronomètre ?

La classe Stopwatch fait partie de l'espace de noms System.Diagnostics en C#, et offre une méthode simple et efficace pour mesurer le temps écoulé avec une grande précision. Il a été introduit avec le Framework .NET et s'est avéré un outil précieux pour les développeurs en ce qui concerne le suivi du temps d'exécution des segments de code, l'optimisation des performances et le profilage des applications.

2. Initialisation et utilisation de base

L'utilisation de la classe Stopwatch est simple. Pour commencer à l'utiliser, vous devez d'abord créer une nouvelle instance de la classe Stopwatch :

using System.Diagnostics;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch(); // Stopwatch object
    }
}
using System.Diagnostics;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch(); // Stopwatch object
    }
}
Imports System.Diagnostics

Friend Class Program
	Shared Sub Main()
		Dim stopwatch As New Stopwatch() ' Stopwatch object
	End Sub
End Class
$vbLabelText   $csharpLabel

Une fois l'instance de Stopwatch créée, vous pouvez démarrer et arrêter le chronomètre pour mesurer le temps écoulé :

stopwatch.Start();
Console.WriteLine("It will measure the time between start and stop");
stopwatch.Stop(); // Stop measuring elapsed time
stopwatch.Start();
Console.WriteLine("It will measure the time between start and stop");
stopwatch.Stop(); // Stop measuring elapsed time
stopwatch.Start()
Console.WriteLine("It will measure the time between start and stop")
stopwatch.Stop() ' Stop measuring elapsed time
$vbLabelText   $csharpLabel

Le temps écoulé peut être obtenu en utilisant la propriété Elapsed :

TimeSpan elapsed = stopwatch.Elapsed;
Console.WriteLine($"Elapsed time: {elapsed}");
TimeSpan elapsed = stopwatch.Elapsed;
Console.WriteLine($"Elapsed time: {elapsed}");
Dim elapsed As TimeSpan = stopwatch.Elapsed
Console.WriteLine($"Elapsed time: {elapsed}")
$vbLabelText   $csharpLabel

Sortie :

C# Stopwatch (Comment cela fonctionne pour les développeurs) : Figure 1 - Sortie du minuteur système

3. Fonctions avancées du chronomètre

La classe Stopwatch offre plusieurs fonctionnalités avancées au-delà de la simple mesure du temps. Examinons quelques-unes de ces caractéristiques :

3.1. Méthode de redémarrage

La méthode Restart est un moyen pratique d'arrêter et de réinitialiser le temps écoulé à zéro en une seule opération. Cela peut être utile pour mesurer le temps d'exécution de plusieurs segments de code sans créer une nouvelle instance de Stopwatch.

Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
Console.WriteLine("The time will restart after executing the below code");
stopwatch.Restart(); 
stopwatch.Stop();
TimeSpan elapsed = stopwatch.Elapsed;
Console.WriteLine($"Total Elapsed time after Restart: {elapsed}");
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
Console.WriteLine("The time will restart after executing the below code");
stopwatch.Restart(); 
stopwatch.Stop();
TimeSpan elapsed = stopwatch.Elapsed;
Console.WriteLine($"Total Elapsed time after Restart: {elapsed}");
Dim stopwatch As New Stopwatch()
stopwatch.Start()
Console.WriteLine("The time will restart after executing the below code")
stopwatch.Restart()
stopwatch.Stop()
Dim elapsed As TimeSpan = stopwatch.Elapsed
Console.WriteLine($"Total Elapsed time after Restart: {elapsed}")
$vbLabelText   $csharpLabel

Sortie :

Chronomètre en C# (Comment ça fonctionne pour les développeurs) : Figure 2 - Redémarrer la sortie

3.2. Propriété IsHighResolution

La propriété IsHighResolution indique si le mécanisme de minutage sous-jacent est basé sur un compteur de performance haute résolution pour mesurer avec précision le temps écoulé. Vérifier cette propriété peut être utile lorsque vous traitez avec des systèmes qui peuvent ne pas prendre en charge les méthodes de minutage haute résolution.

Stopwatch stopwatch = new Stopwatch();
if (Stopwatch.IsHighResolution)
{
    Console.WriteLine("High-resolution timing is supported");
}
else
{
    Console.WriteLine("Fallback to lower-resolution timing");
}
Stopwatch stopwatch = new Stopwatch();
if (Stopwatch.IsHighResolution)
{
    Console.WriteLine("High-resolution timing is supported");
}
else
{
    Console.WriteLine("Fallback to lower-resolution timing");
}
Dim stopwatch As New Stopwatch()
If System.Diagnostics.Stopwatch.IsHighResolution Then
	Console.WriteLine("High-resolution timing is supported")
Else
	Console.WriteLine("Fallback to lower-resolution timing")
End If
$vbLabelText   $csharpLabel

Sortie :

C# Stopwatch (Comment Ça Fonctionne Pour Les Développeurs) : Figure 3 - Sortie de Chronométrage à Haute Résolution

3.3. Propriété de la fréquence

La propriété Frequency renvoie la fréquence du minuteur sous-jacent en ticks par seconde. Cette valeur est utile pour convertir les ticks écoulés en d'autres unités de temps, telles que les millisecondes.

Stopwatch stopwatch = new Stopwatch();
long frequency = Stopwatch.Frequency;
Console.WriteLine($"Timer Frequency: {frequency} ticks per second");
Stopwatch stopwatch = new Stopwatch();
long frequency = Stopwatch.Frequency;
Console.WriteLine($"Timer Frequency: {frequency} ticks per second");
Dim stopwatch As New Stopwatch()
Dim frequency As Long = System.Diagnostics.Stopwatch.Frequency
Console.WriteLine($"Timer Frequency: {frequency} ticks per second")
$vbLabelText   $csharpLabel

Sortie :

C# Stopwatch (Comment cela fonctionne pour les développeurs) : Figure 4 - Sortie de fréquence

3.4. Propriété ElapsedTicks

La propriété ElapsedTicks offre un accès direct au nombre de ticks bruts sans avoir besoin de le convertir en unités de temps. Cela peut s'avérer utile lorsque l'on effectue des calculs personnalisés ou que l'on doit répondre à des exigences de synchronisation de bas niveau.

Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
// Code segment
long elapsedTicks = stopwatch.ElapsedTicks;
Console.WriteLine($"Elapsed Ticks: {elapsedTicks}");
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
// Code segment
long elapsedTicks = stopwatch.ElapsedTicks;
Console.WriteLine($"Elapsed Ticks: {elapsedTicks}");
Dim stopwatch As New Stopwatch()
stopwatch.Start()
' Code segment
Dim elapsedTicks As Long = stopwatch.ElapsedTicks
Console.WriteLine($"Elapsed Ticks: {elapsedTicks}")
$vbLabelText   $csharpLabel

Sortie :

Chronomètre C# (Comment ça fonctionne pour les développeurs) : Figure 5 - Sortie des ticks écoulés

4. Introduction à IronPDF en C&num ;

IronPDF est une puissante bibliothèque C# qui permet aux développeurs de créer, manipuler et traiter sans effort des documents PDF dans leurs applications .NET. Que vous ayez besoin de générer des PDF à partir de HTML, d'images ou d'autres formats, IronPDF fournit un ensemble complet d'outils pour une intégration transparente dans vos projets C#.

IronPDF offre la capacité unique de convertir HTML en PDF, en conservant les mises en page et les styles intacts. Cette fonctionnalité est idéale pour créer des PDF à partir de contenu web, tel que des rapports, des factures ou de la documentation. Vous pouvez convertir des fichiers HTML, des URL et des chaînes HTML en fichiers PDF.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
Imports IronPdf

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim renderer = New ChromePdfRenderer()

		' 1. Convert HTML String to PDF
		Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
		Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
		pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")

		' 2. Convert HTML File to PDF
		Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
		Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
		pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")

		' 3. Convert URL to PDF
		Dim url = "http://ironpdf.com" ' Specify the URL
		Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
		pdfFromUrl.SaveAs("URLToPDF.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

4.1. Installation d'IronPDF dans C# ;

Pour commencer à utiliser IronPDF dans votre application C#, suivez ces étapes simples :

  1. Gestionnaire de packages NuGet : Ouvrez votre projet C# dans Visual Studio et accédez à la Console du gestionnaire de packages. Exécutez la commande suivante pour installer IronPDF :
   Install-Package IronPdf
   Install-Package IronPdf
SHELL

Alternativement, vous pouvez utiliser la page du package NuGet IronPDF pour télécharger et installer le package "IronPdf".

  1. Référence dans le code : Après une installation réussie, ajoutez une référence à IronPDF dans votre code C# :
   using IronPdf;
   using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Vous êtes maintenant prêt à exploiter les capacités d'IronPDF dans votre application.

4.2. Utilisation de C# Stopwatch pour chronométrer la création de PDF à partir d'URL

Maintenant, montrons comment utiliser la classe Stopwatch de C# pour mesurer le temps nécessaire à la création d'un PDF à partir d'une URL en utilisant IronPDF :

using System;
using System.Diagnostics;
using IronPdf;

class Program
{
    static void Main()
    {
        // Initialize IronPDF
        IronPdf.HtmlToPdf Renderer = new IronPdf.HtmlToPdf();
        // Specify the URL for PDF generation
        string urlToConvert = "https://example.com";
        // Use Stopwatch to measure the time taken
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();
        // Create PDF from URL
        PdfDocument PDF = Renderer.RenderUrlAsPdf(urlToConvert);
        // Stop measuring elapsed time
        stopwatch.Stop();
        // Save the generated PDF to a file or perform other actions
        PDF.SaveAs("GeneratedPDF.pdf");
        // Display the time taken
        Console.WriteLine($"Time taken to create PDF from URL: {stopwatch.ElapsedMilliseconds} milliseconds");
    }
}
using System;
using System.Diagnostics;
using IronPdf;

class Program
{
    static void Main()
    {
        // Initialize IronPDF
        IronPdf.HtmlToPdf Renderer = new IronPdf.HtmlToPdf();
        // Specify the URL for PDF generation
        string urlToConvert = "https://example.com";
        // Use Stopwatch to measure the time taken
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();
        // Create PDF from URL
        PdfDocument PDF = Renderer.RenderUrlAsPdf(urlToConvert);
        // Stop measuring elapsed time
        stopwatch.Stop();
        // Save the generated PDF to a file or perform other actions
        PDF.SaveAs("GeneratedPDF.pdf");
        // Display the time taken
        Console.WriteLine($"Time taken to create PDF from URL: {stopwatch.ElapsedMilliseconds} milliseconds");
    }
}
Imports System
Imports System.Diagnostics
Imports IronPdf

Friend Class Program
	Shared Sub Main()
		' Initialize IronPDF
		Dim Renderer As New IronPdf.HtmlToPdf()
		' Specify the URL for PDF generation
		Dim urlToConvert As String = "https://example.com"
		' Use Stopwatch to measure the time taken
		Dim stopwatch As New Stopwatch()
		stopwatch.Start()
		' Create PDF from URL
		Dim PDF As PdfDocument = Renderer.RenderUrlAsPdf(urlToConvert)
		' Stop measuring elapsed time
		stopwatch.Stop()
		' Save the generated PDF to a file or perform other actions
		PDF.SaveAs("GeneratedPDF.pdf")
		' Display the time taken
		Console.WriteLine($"Time taken to create PDF from URL: {stopwatch.ElapsedMilliseconds} milliseconds")
	End Sub
End Class
$vbLabelText   $csharpLabel

Cet exemple initialise IronPDF, utilise la classe HtmlToPdf pour générer un PDF à partir d'une URL spécifiée, et mesure le temps écoulé avec Stopwatch. Modifiez la variable urlToConvert avec l'URL souhaitée, et vous pouvez personnaliser davantage le processus de création PDF selon les besoins de votre application.

Sortie :

Chronomètre C# (Fonctionnement pour les développeurs) : Figure 6 - Sortie du chronomètre de création de PDF

5. Conclusion

En conclusion, la classe Stopwatch en C# est un outil essentiel pour la mesure précise du temps et l'analyse des performances, offrant aux développeurs les moyens d'optimiser le code et d'évaluer l'efficacité opérationnelle. Son interface intuitive et ses fonctions avancées le rendent polyvalent pour répondre à diverses exigences en matière de chronométrage. En outre, l'intégration d'IronPDF dans les projets C# élargit les capacités du langage en matière de manipulation de documents PDF, offrant ainsi une solution transparente pour la génération, la modification et le traitement des PDF.

L'exemple démontré d'utilisation de Stopwatch pour mesurer le temps nécessaire à la création d'un PDF à partir d'une URL avec IronPDF montre la synergie entre le suivi temporel précis et les bibliothèques avancées, soulignant l'importance d'un minutage méticuleux dans l'évaluation des performances de l'application. Ensemble, le Stopwatch de C# et IronPDF permettent aux développeurs de créer des applications haute performance avec un minutage minutieux et des capacités polyvalentes de gestion des PDF.

Pour obtenir votre licence d'essai gratuite pour tester la fonctionnalité d'IronPDF, visitez la Page d'informations sur la licence IronPDF. Le tutoriel complet sur la conversion d'URL en PDF est disponible sur le tutoriel d'IronPDF URL en PDF.

Chaknith Bin
Ingénieur logiciel
Chaknith travaille sur IronXL et IronBarcode. Il possède une expertise approfondie en C# et .NET, aidant à améliorer le logiciel et à soutenir les clients. Ses idées issues des interactions avec les utilisateurs contribuent à de meilleurs produits, une documentation améliorée et une expérience globale enrichie.
< PRÉCÉDENT
Jquery Datatable (Comment cela fonctionne pour les développeurs)
SUIVANT >
Swashbuckle ASP .NET Core (Comment cela fonctionne pour les développeurs)