.NET-HILFE

C# Stoppuhr (Wie sie für Entwickler funktioniert)

In der weiten Landschaft der Programmiersprachen sticht C# als vielseitige und leistungsstarke Sprache für die Entwicklung einer breiten Palette von Anwendungen hervor, von Desktop- bis hin zu Web- und mobilen Anwendungen. Eines der Hauptmerkmale, die C# zu einem Favoriten unter den Entwicklern machen, ist die große Anzahl an Bibliotheken und Klassen, die Lösungen für verschiedene Programmieraufgaben bieten. Unter diesen nimmt die Stopwatch-Klasse eine besondere Stellung ein, da sie für genaue Zeitmessung, Profiling und Leistungsanalyse eine wichtige Rolle spielt.

In diesem Artikel wird gezeigt, wie man das Stopwatch-Objekt in C# verwendet, um die Zeit zu ermitteln, die für eine bestimmte Aufgabe benötigt wird, indem man die öffentliche Eigenschaft TimeSpan Elapsed verwendet. Außerdem werden wir die insgesamt verstrichene Zeit für die PDF-Erstellung mit IronPDF for C# Developers messen.

1. Was ist die Stoppuhr-Klasse?

Die Stopwatch-Klasse ist Teil des System.Diagnostics-Namespaces in C# und bietet eine einfache und effiziente Möglichkeit, die verstrichene Zeit mit hoher Präzision zu messen. Es wurde mit dem .NET-Framework eingeführt und ist ein wertvolles Werkzeug für Entwickler, um die Ausführungszeit von Codesegmenten zu verfolgen, die Leistung zu optimieren und ein Anwendungsprofil zu erstellen.

2. Initialisierung und grundlegende Verwendung

Die Verwendung der Stopwatch-Klasse ist unkompliziert. Um damit zu beginnen, müssen Sie zunächst eine neue Instanz der Stopwatch-Klasse erstellen:

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

Sobald die Stopwatch-Instanz erstellt wurde, können Sie die Stoppuhr starten und stoppen, um die verstrichene Zeit zu messen:

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

Die verstrichene Zeit kann mit der Elapsed-Eigenschaft abgerufen werden:

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

Ausgabe:

C# Stopwatch (Wie es für Entwickler funktioniert): Abbildung 1 - System-Timerausgabe

3. Erweiterte Funktionen der Stoppuhr

Die Stopwatch-Klasse bietet mehrere fortgeschrittene Funktionen über die grundlegende Zeitmessung hinaus. Sehen wir uns einige dieser Funktionen an:

3.1. Neustart Methode

Die Restart-Methode ist eine praktische Möglichkeit, um die vergangene Zeit in einem einzigen Vorgang zu beenden und auf null zurückzusetzen. Dies kann nützlich sein, wenn die Ausführungszeit mehrerer Code-Segmente gemessen werden soll, ohne eine neue Stopwatch-Instanz zu erstellen.

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

Ausgabe:

C# Stopwatch (Wie es für Entwickler funktioniert): Abbildung 2 - Neustart Ausgabe

3.2. IsHighResolution Eigenschaft

Die IsHighResolution-Eigenschaft gibt an, ob der zugrunde liegende Zeitmechanismus auf einem hochauflösenden Leistungszähler basiert, um die verstrichene Zeit genau zu messen. Das Überprüfen dieser Eigenschaft kann nützlich sein, wenn man mit Systemen arbeitet, die möglicherweise keine hochauflösenden Zeitmessmethoden unterstützen.

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

Ausgabe:

C# Stoppuhr (Wie es für Entwickler funktioniert): Abbildung 3 - Ausgabe der hochauflösenden Zeitmessung

3.3. Frequenz-Eigenschaft

Die Frequency-Eigenschaft gibt die Frequenz des zugrunde liegenden Timers in Ticks pro Sekunde zurück. Dieser Wert ist nützlich für die Konvertierung von verstrichenen Ticks in andere Zeiteinheiten, wie z. B. Millisekunden.

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

Ausgabe:

C# Stoppuhr (Wie sie für Entwickler funktioniert): Abbildung 4 - Frequenzausgabe

3.4. ElapsedTicks-Eigenschaft

Die ElapsedTicks-Eigenschaft bietet direkten Zugriff auf die rohe Tick-Anzahl, ohne dass eine Umwandlung in Zeiteinheiten erforderlich ist. Dies kann bei der Durchführung von benutzerdefinierten Berechnungen oder beim Umgang mit Low-Level-Timing-Anforderungen von Vorteil sein.

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

Ausgabe:

C# Stoppuhr (Wie sie für Entwickler funktioniert): Abbildung 5 - Ausgabe der abgelaufenen Ticks

4. Einführung in IronPDF in C#

IronPDF ist eine leistungsstarke C#-Bibliothek, die es Entwicklern ermöglicht, PDF-Dokumente in ihren .NET-Anwendungen mühelos zu erstellen, zu bearbeiten und zu verarbeiten. Ganz gleich, ob Sie PDFs aus HTML, Bildern oder anderen Formaten generieren müssen, IronPDF bietet ein umfassendes Set an Tools für die nahtlose Integration in Ihre C#-Projekte.

IronPDF bietet die einzigartige Fähigkeit, HTML in PDF umzuwandeln, wobei Layouts und Stile intakt bleiben. Diese Funktion ist ideal zur Erstellung von PDFs aus Webinhalten, wie Berichten, Rechnungen oder Dokumentationen. Sie können HTML-Dateien, URLs und HTML-Strings in PDF-Dateien konvertieren.

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 von IronPDF in C#;

Um IronPDF in Ihrer C#-Anwendung zu verwenden, folgen Sie diesen einfachen Schritten:

  1. NuGet-Paket-Manager: Öffnen Sie Ihr C#-Projekt in Visual Studio und navigieren Sie zur Paket-Manager-Konsole. Führen Sie den folgenden Befehl aus, um IronPDF zu installieren:
   Install-Package IronPdf
   Install-Package IronPdf
SHELL

Alternativ können Sie die IronPDF NuGet-Paketseite verwenden, um das "IronPdf"-Paket herunterzuladen und zu installieren.

  1. Referenz im Code: Nach erfolgreicher Installation fügen Sie Ihrem C#-Code eine Referenz zu IronPDF hinzu:
   using IronPdf;
   using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Jetzt sind Sie bereit, die Möglichkeiten von IronPDF in Ihrer Anwendung zu nutzen.

4.2. Verwendung von C# Stopwatch zur Zeitmessung der PDF-Erstellung aus einer URL

Nun demonstrieren wir, wie man die C#-Klasse Stopwatch verwendet, um die Zeit zu messen, die benötigt wird, um mit IronPDF ein PDF aus einer URL zu erstellen:

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

Dieses Beispiel initialisiert IronPDF, verwendet die HtmlToPdf-Klasse, um ein PDF aus einer angegebenen URL zu rendern, und misst die benötigte Zeit mit Stopwatch. Passen Sie die Variable urlToConvert an die gewünschte URL an, und Sie können den PDF-Erstellungsprozess nach Bedarf für Ihre Anwendung weiter anpassen.

Ausgabe:

C# Stopwatch (Wie es für Entwickler funktioniert): Abbildung 6 - PDF-Erstellungstimer-Ausgabe

5. Schlussfolgerung

Abschließend lässt sich sagen, dass die Stopwatch-Klasse in C# ein zentrales Werkzeug für präzise Zeitmessung und Leistungsanalyse darstellt. Sie bietet Entwicklern die Möglichkeit, Code zu optimieren und die Betriebseffizienz zu bewerten. Dank seiner intuitiven Benutzeroberfläche und fortschrittlichen Funktionen ist er vielseitig für verschiedene Zeitmessungsanforderungen einsetzbar. Darüber hinaus erweitert die Integration von IronPDF in C#-Projekte die Möglichkeiten der Sprache bei der Bearbeitung von PDF-Dokumenten und bietet eine nahtlose Lösung für die Erzeugung, Modifizierung und Verarbeitung von PDFs.

Das gezeigte Beispiel zur Verwendung von Stopwatch zur Messung der Zeit, die zum Erstellen eines PDFs aus einer URL mit IronPDF benötigt wird, verdeutlicht die Synergie zwischen präzisem Zeit-Tracking und fortschrittlichen Bibliotheken und hebt die Bedeutung einer sorgfältigen Zeitmessung bei der Beurteilung der Anwendungsleistung hervor. Zusammen ermöglichen C#'s Stopwatch und IronPDF Entwicklern, leistungsstarke Anwendungen mit präzisem Timing und vielseitigen PDF-Bearbeitungsfähigkeiten zu erstellen.

Um Ihre kostenlose Testlizenz zu erhalten, um die Funktionalität von IronPDF zu testen, besuchen Sie die IronPDF Licensing Information Page. Das vollständige Tutorial zur URL-zu-PDF-Konvertierung finden Sie im IronPDF URL to PDF Tutorial.

Chipego
Software-Ingenieur
Chipego hat eine natürliche Fähigkeit zum Zuhören, die ihm hilft, Kundenprobleme zu verstehen und intelligente Lösungen anzubieten. Er trat dem Iron Software-Team 2023 bei, nachdem er einen Bachelor of Science in Informationstechnologie erworben hatte. IronPDF und IronOCR sind die beiden Produkte, auf die sich Chipego konzentriert hat, aber sein Wissen über alle Produkte wächst täglich, da er neue Wege findet, Kunden zu unterstützen. Er genießt die Zusammenarbeit bei Iron Software, da Teammitglieder aus dem gesamten Unternehmen ihre unterschiedlichen Erfahrungen einbringen und so zu effektiven, innovativen Lösungen beitragen. Wenn Chipego nicht an seinem Schreibtisch sitzt, kann man ihn oft bei einem guten Buch oder beim Fußballspielen antreffen.
< PREVIOUS
jQuery-Datentabelle (Wie es für Entwickler funktioniert)
NÄCHSTES >
Swashbuckle ASP .NET Core (Wie es für Entwickler funktioniert)