AYUDA .NET

Cronómetro C# (Cómo funciona para desarrolladores)

Actualizado 27 de enero, 2024
Compartir:

En el vasto panorama de los lenguajes de programación, C# destaca como un lenguaje versátil y potente utilizado para desarrollar una amplia gama de aplicaciones, desde ordenadores de sobremesa hasta aplicaciones web y móviles. Una de las características clave que hacen de C# el favorito de los desarrolladores es su rico conjunto de bibliotecas y clases, que ofrecen soluciones a diversos retos de programación. Entre ellos, el Clase Cronómetro ocupa un lugar especial por su papel en la medición precisa del tiempo, la elaboración de perfiles y el análisis del rendimiento.

En este artículo, veremos cómo utilizar el objeto Stopwatch en C# para encontrar el tiempo que se tarda en realizar una tarea específica utilizando la propiedad pública TimeSpan Elapsed. Además, cronometraremos el tiempo total transcurrido medido para la creación del PDF utilizando IronPDF C#.

1. ¿Qué es la clase Cronómetro?

La clase Stopwatch es parte del espacio de nombres System.Diagnostics en C#, y proporciona una forma simple y eficiente de medir el tiempo transcurrido con alta precisión. Se introdujo con .NET Framework y ha sido una herramienta valiosa para los desarrolladores a la hora de seguir el tiempo de ejecución de segmentos de código, optimizar el rendimiento y perfilar aplicaciones.

2. Inicialización y uso básico

Utilizar la clase Stopwatch es muy sencillo. Para empezar a utilizarlo, primero hay que crear una nueva instancia de la clase Stopwatch:

using System.Diagnostics;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch(); //  Objeto cronómetro
    }
}
using System.Diagnostics;

class Program
{
    static void Main()
    {
        Stopwatch stopwatch = new Stopwatch(); //  Objeto cronómetro
    }
}
Imports System.Diagnostics

Friend Class Program
	Shared Sub Main()
		Dim stopwatch As New Stopwatch() '  Objeto cronómetro
	End Sub
End Class
VB   C#

Una vez creada la instancia Stopwatch, puede iniciar y detener el cronómetro para medir el tiempo transcurrido:

stopwatch.Start();
Console.WriteLine("It will measure the time between start and stop");
stopwatch.Stop(); //  Detener la medición del tiempo transcurrido
stopwatch.Start();
Console.WriteLine("It will measure the time between start and stop");
stopwatch.Stop(); //  Detener la medición del tiempo transcurrido
stopwatch.Start()
Console.WriteLine("It will measure the time between start and stop")
stopwatch.Stop() '  Detener la medición del tiempo transcurrido
VB   C#

El tiempo transcurrido puede obtenerse utilizando la propiedad 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}")
VB   C#

Salida:

Cronómetro C# (Cómo funciona para desarrolladores): Figura 1 - Salida del cronómetro del sistema

3. Funciones avanzadas del cronómetro

La clase Stopwatch ofrece varias funciones avanzadas más allá de la medición básica del tiempo. Exploremos algunas de estas características:

3.1. Método de reinicio

El método Restart es una forma cómoda de parar y poner a cero el tiempo transcurrido en una sola operación. Esto puede ser útil cuando se mide el tiempo de ejecución de múltiples segmentos de código sin crear una nueva instancia 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}")
VB   C#

Salida:

Cronómetro C# (Cómo funciona para desarrolladores): Figura 2 - Salida de reinicio

3.2. Propiedad `IsHighResolution

La propiedad IsHighResolution indica si el mecanismo de temporización subyacente se basa en un contador de rendimiento de alta resolución para medir con precisión el tiempo transcurrido. Comprobar esta propiedad puede ser útil cuando se trabaja con sistemas que pueden no soportar métodos de temporización de alta resolución.

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
VB   C#

Salida:

Cronómetro C# (Cómo funciona para desarrolladores): Figura 3 - Salida de cronometraje de alta resolución

3.3. Propiedad de frecuencia

La propiedad Frequency devuelve la frecuencia del temporizador subyacente en ticks por segundo. Este valor es útil para convertir los ticks transcurridos a otras unidades de tiempo, como los milisegundos.

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")
VB   C#

Salida:

Cronómetro C# (Cómo funciona para desarrolladores): Figura 4 - Salida de frecuencia

3.4. Propiedad ElapsedTicks

La propiedad ElapsedTicks proporciona acceso directo al recuento de ticks en bruto sin necesidad de convertirlo a unidades de tiempo. Esto puede ser beneficioso cuando se realizan cálculos personalizados o se trabaja con requisitos de temporización de bajo nivel.

Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
//  Segmento de código
long elapsedTicks = stopwatch.ElapsedTicks;
Console.WriteLine($"Elapsed Ticks: {elapsedTicks}");
Stopwatch stopwatch = new Stopwatch();
stopwatch.Start();
//  Segmento de código
long elapsedTicks = stopwatch.ElapsedTicks;
Console.WriteLine($"Elapsed Ticks: {elapsedTicks}");
Dim stopwatch As New Stopwatch()
stopwatch.Start()
'  Segmento de código
Dim elapsedTicks As Long = stopwatch.ElapsedTicks
Console.WriteLine($"Elapsed Ticks: {elapsedTicks}")
VB   C#

Salida:

Cronómetro C# (Cómo funciona para desarrolladores): Figura 5 - Salida de Ticks Transcurridos

4. Introducción a IronPDF en C#

IronPDF es una potente biblioteca C# que permite a los desarrolladores crear, manipular y procesar sin esfuerzo documentos PDF dentro de sus aplicaciones .NET. Tanto si necesita generar archivos PDF a partir de HTML, imágenes u otros formatos, IronPDF le ofrece un completo conjunto de herramientas para una integración perfecta en sus proyectos C#.

4.1. Instalación de IronPDF en C#

Para empezar a utilizar IronPDF en su aplicación C#, siga estos sencillos pasos:

  1. Administrador de paquetes NuGet: Abra su proyecto C# en Visual Studio y navegue hasta la consola del gestor de paquetes. Ejecute el siguiente comando para instalar IronPDF:
   Install-Package IronPdf

También puede utilizar la función Sitio web del paquete NuGet para descargar e instalar el paquete "IronPdf".

  1. Referencia en el código: Después de la instalación exitosa, agregue una referencia a IronPDF en su código C#:
   using IronPdf;
   using IronPdf;
Imports IronPdf
VB   C#

Ahora, está listo para aprovechar las capacidades de IronPDF en su aplicación.

4.2. Uso del cronómetro de C# para cronometrar la creación de un PDF a partir de una URL

Ahora, vamos a demostrar cómo utilizar la clase Stopwatch de C# para medir el tiempo que se tarda en crear un PDF a partir de una URL utilizando IronPDF:

using System;
using System.Diagnostics;
using IronPdf;

class Program
{
    static void Main()
    {
        //  Inicializar IronPDF
        IronPdf.HtmlToPdf Renderer = new IronPdf.HtmlToPdf();
        //  Especifique la URL para la generación de PDF
        string urlToConvert = "https://ejemplo.com";
        //  Utilice un cronómetro para medir el tiempo empleado
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();
        //  Crear PDF a partir de URL
        PdfDocument PDF = Renderer.RenderUrlAsPdf(urlToConvert);
        //  Detener la medición del tiempo transcurrido
        stopwatch.Stop();
        //  Guardar el PDF generado en un archivo o realizar otras acciones
        PDF.SaveAs("GeneratedPDF.pdf");
        //  Visualizar el tiempo empleado
        Console.WriteLine($"Time taken to create PDF from URL: {stopwatch.ElapsedMilliseconds} milliseconds");
    }
}
using System;
using System.Diagnostics;
using IronPdf;

class Program
{
    static void Main()
    {
        //  Inicializar IronPDF
        IronPdf.HtmlToPdf Renderer = new IronPdf.HtmlToPdf();
        //  Especifique la URL para la generación de PDF
        string urlToConvert = "https://ejemplo.com";
        //  Utilice un cronómetro para medir el tiempo empleado
        Stopwatch stopwatch = new Stopwatch();
        stopwatch.Start();
        //  Crear PDF a partir de URL
        PdfDocument PDF = Renderer.RenderUrlAsPdf(urlToConvert);
        //  Detener la medición del tiempo transcurrido
        stopwatch.Stop();
        //  Guardar el PDF generado en un archivo o realizar otras acciones
        PDF.SaveAs("GeneratedPDF.pdf");
        //  Visualizar el tiempo empleado
        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()
		'  Inicializar IronPDF
		Dim Renderer As New IronPdf.HtmlToPdf()
		'  Especifique la URL para la generación de PDF
		Dim urlToConvert As String = "https://ejemplo.com"
		'  Utilice un cronómetro para medir el tiempo empleado
		Dim stopwatch As New Stopwatch()
		stopwatch.Start()
		'  Crear PDF a partir de URL
		Dim PDF As PdfDocument = Renderer.RenderUrlAsPdf(urlToConvert)
		'  Detener la medición del tiempo transcurrido
		stopwatch.Stop()
		'  Guardar el PDF generado en un archivo o realizar otras acciones
		PDF.SaveAs("GeneratedPDF.pdf")
		'  Visualizar el tiempo empleado
		Console.WriteLine($"Time taken to create PDF from URL: {stopwatch.ElapsedMilliseconds} milliseconds")
	End Sub
End Class
VB   C#

Este ejemplo inicializa IronPDF, utiliza la clase HtmlToPdf para renderizar un PDF desde una URL especificada, y mide el tiempo empleado utilizando Stopwatch. Ajuste la variable urlToConvert con la URL deseada y podrá personalizar aún más el proceso de creación de PDF según las necesidades de su aplicación.

Salida:

Cronómetro C# (Cómo funciona para desarrolladores): Figura 6 - Salida del cronómetro de creación de PDF

5. Conclusión

En conclusión, la clase Stopwatch de C# se erige como una herramienta fundamental para la medición precisa del tiempo y el análisis del rendimiento, ofreciendo a los desarrolladores los medios para optimizar el código y evaluar la eficiencia operativa. Su interfaz intuitiva y sus funciones avanzadas lo hacen versátil para diversas necesidades de cronometraje. Además, la integración de IronPDF en proyectos C# amplía las capacidades del lenguaje en la manipulación de documentos PDF, proporcionando una solución perfecta para generar, modificar y procesar PDF.

El ejemplo demostrado del uso de Stopwatch para medir el tiempo necesario para crear un PDF a partir de una URL con IronPDF muestra la sinergia entre el seguimiento preciso del tiempo y las bibliotecas avanzadas, destacando la importancia de un cronometraje meticuloso a la hora de evaluar el rendimiento de las aplicaciones. Juntos, el Stopwatch de C# y IronPDF permiten a los desarrolladores crear aplicaciones de alto rendimiento con una sincronización meticulosa y versátiles funciones de manejo de PDF.

Para obtener su licencia de prueba gratuita para probar la funcionalidad de IronPDF, visite la página página de licencia. El tutorial completo sobre la conversión de URL a PDF se encuentra en aquí.

< ANTERIOR
Jquery Datatable (Cómo funciona para desarrolladores)
SIGUIENTE >
Swashbuckle ASP .NET Core (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 9,974,197 Ver licencias >
123