Passer au contenu du pied de page
MISES à JOUR POUR LES DéVELOPPEURS

Chronomètre C# (Comment ça 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 une large gamme d'applications, des applications de bureau aux applications web et mobiles. L'une des principales caractéristiques qui font de C# un favori parmi les développeurs est son ensemble riche de bibliothèques et de classes, offrant des solutions à divers défis de programmation. Parmi celles-ci, la classe Stopwatch occupe une place spéciale pour son rôle dans la mesure précise du temps, 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 pour effectuer une tâche spécifique en utilisant la propriété publique TimeSpan Elapsed. De plus, nous chronométrerons le temps total écoulé mesuré pour la création de PDF en utilisant IronPDF pour les développeurs C#.

1. Qu'est-ce que la classe Stopwatch ?

La classe Stopwatch fait partie du namespace System.Diagnostics en C#, et offre un moyen simple et efficace de mesurer le temps écoulé avec une haute précision. Elle a été introduite avec le .NET Framework et a été un outil précieux pour les développeurs pour suivre le temps d'exécution des segments de code, optimiser les performances et profiler les applications.

2. Initialisation et utilisation de base

Utiliser 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()
    {
        // Create a new stopwatch instance for timing operations
        Stopwatch stopwatch = new Stopwatch();
    }
}
using System.Diagnostics;

class Program
{
    static void Main()
    {
        // Create a new stopwatch instance for timing operations
        Stopwatch stopwatch = new Stopwatch();
    }
}
Imports System.Diagnostics

Friend Class Program
	Shared Sub Main()
		' Create a new stopwatch instance for timing operations
		Dim stopwatch As New Stopwatch()
	End Sub
End Class
$vbLabelText   $csharpLabel

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

using System;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();

        // Start timing
        stopwatch.Start();
        Console.WriteLine("It will measure the time between start and stop");

        // Stop timing
        stopwatch.Stop();
    }
}
using System;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();

        // Start timing
        stopwatch.Start();
        Console.WriteLine("It will measure the time between start and stop");

        // Stop timing
        stopwatch.Stop();
    }
}
Imports System

Friend Class Program
	Shared Sub Main()
		Dim stopwatch As New Stopwatch()

		' Start timing
		stopwatch.Start()
		Console.WriteLine("It will measure the time between start and stop")

		' Stop timing
		stopwatch.Stop()
	End Sub
End Class
$vbLabelText   $csharpLabel

Le temps écoulé peut être obtenu à l'aide de la propriété Elapsed :

using System;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        // Simulate some work by sleeping for 2 seconds
        System.Threading.Thread.Sleep(2000);

        // Stop timing
        stopwatch.Stop();

        // Fetch the elapsed time
        TimeSpan elapsed = stopwatch.Elapsed;
        Console.WriteLine($"Elapsed time: {elapsed}");
    }
}
using System;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        // Simulate some work by sleeping for 2 seconds
        System.Threading.Thread.Sleep(2000);

        // Stop timing
        stopwatch.Stop();

        // Fetch the elapsed time
        TimeSpan elapsed = stopwatch.Elapsed;
        Console.WriteLine($"Elapsed time: {elapsed}");
    }
}
Imports System

Friend Class Program
	Shared Sub Main()
		Dim stopwatch As New Stopwatch()
		stopwatch.Start()

		' Simulate some work by sleeping for 2 seconds
		System.Threading.Thread.Sleep(2000)

		' Stop timing
		stopwatch.Stop()

		' Fetch the elapsed time
		Dim elapsed As TimeSpan = stopwatch.Elapsed
		Console.WriteLine($"Elapsed time: {elapsed}")
	End Sub
End Class
$vbLabelText   $csharpLabel

Sortie :

C# Chronomètre (Comment ça fonctionne pour les développeurs) : Figure 1 - Sortie du système de temporisation

3. Fonctionnalités avancées du Stopwatch

La classe Stopwatch offre plusieurs fonctionnalités avancées au-delà de la mesure temporelle de base. Explorons certaines de ces fonctionnalités :

3.1. Méthode Restart

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 Stopwatch.

using System;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();

        // Start timing
        stopwatch.Start();
        Console.WriteLine("The time will restart after executing the below code");

        // Restart timing
        stopwatch.Restart();

        // Simulate work
        System.Threading.Thread.Sleep(1000);

        // Stop timing
        stopwatch.Stop();

        // Fetch the elapsed time after restart
        TimeSpan elapsed = stopwatch.Elapsed;
        Console.WriteLine($"Total Elapsed time after Restart: {elapsed}");
    }
}
using System;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();

        // Start timing
        stopwatch.Start();
        Console.WriteLine("The time will restart after executing the below code");

        // Restart timing
        stopwatch.Restart();

        // Simulate work
        System.Threading.Thread.Sleep(1000);

        // Stop timing
        stopwatch.Stop();

        // Fetch the elapsed time after restart
        TimeSpan elapsed = stopwatch.Elapsed;
        Console.WriteLine($"Total Elapsed time after Restart: {elapsed}");
    }
}
Imports System

Friend Class Program
	Shared Sub Main()
		Dim stopwatch As New Stopwatch()

		' Start timing
		stopwatch.Start()
		Console.WriteLine("The time will restart after executing the below code")

		' Restart timing
		stopwatch.Restart()

		' Simulate work
		System.Threading.Thread.Sleep(1000)

		' Stop timing
		stopwatch.Stop()

		' Fetch the elapsed time after restart
		Dim elapsed As TimeSpan = stopwatch.Elapsed
		Console.WriteLine($"Total Elapsed time after Restart: {elapsed}")
	End Sub
End Class
$vbLabelText   $csharpLabel

Sortie :

C# Chronomètre (Comment ça fonctionne pour les développeurs) : Figure 2 - Sortie du redémarrage

3.2. Propriété IsHighResolution

La propriété IsHighResolution indique si le mécanisme de synchronisation sous-jacent est basé sur un compteur de performance haute résolution pour mesurer précisément le temps écoulé. Vérifier cette propriété peut être utile lors du traitement de systèmes qui peuvent ne pas prendre en charge les méthodes de chronométrage haute résolution.

using System;

class Program
{
    static void Main()
    {
        if (Stopwatch.IsHighResolution)
        {
            Console.WriteLine("High-resolution timing is supported");
        }
        else
        {
            Console.WriteLine("Fallback to lower-resolution timing");
        }
    }
}
using System;

class Program
{
    static void Main()
    {
        if (Stopwatch.IsHighResolution)
        {
            Console.WriteLine("High-resolution timing is supported");
        }
        else
        {
            Console.WriteLine("Fallback to lower-resolution timing");
        }
    }
}
Imports System

Friend Class Program
	Shared Sub Main()
		If Stopwatch.IsHighResolution Then
			Console.WriteLine("High-resolution timing is supported")
		Else
			Console.WriteLine("Fallback to lower-resolution timing")
		End If
	End Sub
End Class
$vbLabelText   $csharpLabel

Sortie :

C# Chronomètre (Comment ça fonctionne pour les développeurs) : Figure 3 - Sortie du chronométrage haute résolution

3.3. Propriété Frequency

La propriété Frequency renvoie la fréquence du temporisateur 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.

using System;

class Program
{
    static void Main()
    {
        long frequency = Stopwatch.Frequency;
        Console.WriteLine($"Timer Frequency: {frequency} ticks per second");
    }
}
using System;

class Program
{
    static void Main()
    {
        long frequency = Stopwatch.Frequency;
        Console.WriteLine($"Timer Frequency: {frequency} ticks per second");
    }
}
Imports System

Friend Class Program
	Shared Sub Main()
		Dim frequency As Long = Stopwatch.Frequency
		Console.WriteLine($"Timer Frequency: {frequency} ticks per second")
	End Sub
End Class
$vbLabelText   $csharpLabel

Sortie :

C# Chronomètre (Comment ça fonctionne pour les développeurs) : Figure 4 - Sortie de la fréquence

3.4. Propriété ElapsedTicks

La propriété ElapsedTicks permet un accès direct au nombre brut de ticks sans avoir besoin de le convertir en unités de temps. Cela peut être bénéfique lors de l'exécution de calculs personnalisés ou du traitement des exigences de chronométrage bas niveau.

using System;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        // Simulate some work
        System.Threading.Thread.Sleep(1500);

        // Stop timing
        stopwatch.Stop();

        // Fetch the elapsed ticks
        long elapsedTicks = stopwatch.ElapsedTicks;
        Console.WriteLine($"Elapsed Ticks: {elapsedTicks}");
    }
}
using System;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();

        // Simulate some work
        System.Threading.Thread.Sleep(1500);

        // Stop timing
        stopwatch.Stop();

        // Fetch the elapsed ticks
        long elapsedTicks = stopwatch.ElapsedTicks;
        Console.WriteLine($"Elapsed Ticks: {elapsedTicks}");
    }
}
Imports System

Friend Class Program
	Shared Sub Main()
		Dim stopwatch As New Stopwatch()
		stopwatch.Start()

		' Simulate some work
		System.Threading.Thread.Sleep(1500)

		' Stop timing
		stopwatch.Stop()

		' Fetch the elapsed ticks
		Dim elapsedTicks As Long = stopwatch.ElapsedTicks
		Console.WriteLine($"Elapsed Ticks: {elapsedTicks}")
	End Sub
End Class
$vbLabelText   $csharpLabel

Sortie :

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

4. Introduction to IronPDF in C

IronPDF est une puissante bibliothèque C# qui permet aux développeurs de créer, manipuler et traiter facilement 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 offre 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, tels 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)
    {
        // Initialize the PDF renderer
        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)
    {
        // Initialize the PDF renderer
        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)
		' Initialize the PDF renderer
		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 of IronPDF in 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

    Alternativement, vous pouvez utiliser la page de paquet IronPDF NuGet pour télécharger et installer le paquet "IronPDF".

  2. 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

    Maintenant, vous êtes prêt à tirer parti des capacités de IronPDF dans votre application.

4.2. Utilisation de C# Stopwatch pour chronométrer la création de PDF à partir d'une 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 Renderer
        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
        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 Renderer
        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
        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 Renderer
		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
		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 rendre un PDF à partir d'une URL spécifique, et mesure le temps pris en utilisant Stopwatch. Ajustez la variable urlToConvert avec l'URL souhaitée, et vous pouvez personnaliser davantage le processus de création de PDF selon les besoins de votre application.

Sortie :

C# Chronomètre (Comment ça fonctionne pour les développeurs) : Figure 6 - Sortie du temporisateur de création de PDF

5. Conclusion

En conclusion, la classe Stopwatch en C# se révèle être un outil essentiel pour une mesure précise du temps et une 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 fonctionnalités avancées la rendent polyvalente pour diverses exigences de chronométrage. De plus, l'intégration de IronPDF dans les projets C# étend les capacités du langage en matière de manipulation de documents PDF, fournissant une solution transparente pour générer, modifier et traiter des PDFs.

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

Pour obtenir votre licence d'essai gratuite afin de tester la fonctionnalité IronPDF, visitez la Page d'information sur la licence IronPDF. Le tutoriel complet sur la conversion de l'URL en PDF peut être trouvé sur le Tutoriel URL vers PDF d'IronPDF.

Questions Fréquemment Posées

Comment la classe Chronomètre aide-t-elle à optimiser les performances des applications C# ?

La classe Chronomètre en C# permet aux développeurs de mesurer le temps pris par l'exécution du code avec une haute précision. En suivant le temps écoulé, les développeurs peuvent identifier les goulets d'étranglement de performance et optimiser le code pour une meilleure efficacité.

Quelles sont les fonctionnalités avancées offertes par la classe Chronomètre pour les développeurs C# ?

La classe Chronomètre fournit des fonctionnalités avancées telles que la méthode Restart pour réinitialiser et démarrer le chronométrage à nouveau, IsHighResolution pour vérifier la précision du timing du système, Frequency pour la fréquence du timing, et ElapsedTicks pour une mesure temporelle granulaire.

La classe Chronomètre peut-elle être utilisée pour les timings haute résolution sur tous les systèmes ?

La classe Chronomètre prend en charge les timings haute résolution si le matériel du système le permet. Les développeurs peuvent vérifier la propriété IsHighResolution pour déterminer si leur système permet un chronométrage haute résolution.

Comment pouvez-vous convertir du contenu HTML en PDF dans une application C# ?

Vous pouvez utiliser IronPDF pour convertir du contenu HTML en PDF dans une application C#. IronPDF maintient l'intégrité du style et de la mise en page du HTML, ce qui la rend adaptée pour générer des documents PDF de haute qualité comme des rapports et des factures.

Comment intégrer le Chronomètre avec la génération de PDF en C# ?

Pour intégrer le Chronomètre avec la génération de PDF, démarrez le Chronomètre avant de lancer le processus de rendu PDF avec IronPDF. Une fois le PDF généré, arrêtez le Chronomètre pour mesurer le temps pris pour le processus entier.

Quel est le processus pour installer une bibliothèque PDF dans un projet C# Visual Studio ?

Dans Visual Studio, vous pouvez installer IronPDF en utilisant le Package Manager NuGet. Exécutez la commande Install-Package IronPDF dans la console du Package Manager et incluez using IronPDF; dans votre code pour accéder à ses fonctionnalités.

Pourquoi la classe Chronomètre est-elle cruciale pour le réglage des performances en C# ?

La classe Chronomètre est cruciale pour le réglage des performances parce qu'elle fournit des capacités de minutage précises qui aident les développeurs à mesurer et analyser le temps d'exécution du code. Ces informations sont essentielles pour identifier les opérations lentes et améliorer les performances de l'application.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la ...

Lire la suite

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi