El tiempo de ejecución de una tarea se define como el tiempo que tarda el sistema en ejecutar esa tarea. El tiempo de ejecución de un programa es igual a la suma del tiempo de ejecución de sus sentencias. Existen numerosas formas de calcular el tiempo de ejecución de un programa en C#. En este artículo, veremos tres formas de medir el tiempo de ejecución en C#.
Método 1: Uso de los métodos StartNew() y Stop()
Podemos calcular el tiempo de ejecución del código utilizando los métodos StartNew() y Stop(). El método StartNew() pertenece a la clase Stopwatch y básicamente se usa para inicializar una nueva instancia de Stopwatch. Internamente marca la propiedad de tiempo transcurrido igual a cero y luego comienza a medir el tiempo transcurrido. Este método es casi lo mismo que llamar primero al constructor Stopwatch y luego llamar a class en la nueva instancia.
Sintaxis:
public static StartNew ();
El método Stop() también se incluye en la clase Stopwatch y se usa para detener el tiempo de medición actual durante un intervalo. En primer lugar, podemos llamar al método StartNew() en el cronómetro para iniciar el tiempo transcurrido y, al final, podemos llamar a este método para finalizar el intervalo de tiempo de medición actual. Eventualmente, el tiempo total de ejecución se calcula con la ayuda de la propiedad transcurrida. Cada vez que una instancia de cronómetro mide más de un intervalo, este método es similar a pausar la medición del tiempo transcurrido. Al igual que el método StartNew(), este método también se define en el espacio de nombres System.Diagnostics.
Sintaxis:
public void Stop ();
Ejemplo:
C#
// C# program to find the execution time of the code using System; using System.Diagnostics; class GFG{ static public void Main() { // Starting the Stopwatch var watch = Stopwatch.StartNew(); // Iterating using for loop for(int i = 0; i < 5; i++) { // Print on console Console.WriteLine("GeeksforGeeks"); } // Stop the Stopwatch watch.Stop(); // Print the execution time in milliseconds // by using the property elapsed milliseconds Console.WriteLine( $"The Execution time of the program is {watch.ElapsedMilliseconds}ms"); } }
GeeksforGeeks GeeksforGeeks GeeksforGeeks GeeksforGeeks GeeksforGeeks The Execution time of the program is 37ms
Método 2: Usar el método GetTimestamp()
También podemos encontrar el tiempo de ejecución del código usando el método GetTimestamp(). Este método es bastante útil para encontrar el número de tics durante una duración en el mecanismo del temporizador. Podemos usar el contador de rendimiento de alta resolución de la clase Stopwatch para obtener el valor actual de ese contador. También podemos usar el temporizador del sistema para obtener la propiedad DateTime.Ticks actual de la instancia de DateTime.UtcNow. Su tipo de retorno es un entero largo que representa el valor del contador de ticks del mecanismo del temporizador.
Sintaxis:
public static long GetTimestamp ();
Ejemplo:
C#
// C# program to find the execution time of the code using System; using System.Diagnostics; class GFG{ static public void Main() { // Mark the start before the loop var start = Stopwatch.GetTimestamp(); // Iterating using for loop for(int i = 0; i < 5; i++) { // Print on console Console.WriteLine("GeeksforGeeks"); } // Mark the end after the loop var end = Stopwatch.GetTimestamp(); // Print the difference Console.WriteLine("Elapsed Time is {0} ticks", (end - start)); } }
GeeksforGeeks GeeksforGeeks GeeksforGeeks GeeksforGeeks GeeksforGeeks Elapsed Time is 343095 ticks
Método 3: Usar la propiedad DateTime.Now
Podemos calcular el tiempo de ejecución del código usando la propiedad DateTime.Now. Esta propiedad es bastante útil para obtener un objeto DateTime que inicialmente está marcado con la fecha y hora actuales en el dispositivo (como la hora local). El valor de propiedad de este método es DateTime, que es un objeto cuyo valor es la hora y los datos locales actuales. La propiedad Now devuelve un valor DateTime que representa la fecha y la hora actuales en el dispositivo o la computadora. Esto se define en el espacio de nombres del sistema.
Sintaxis:
public static DateTime Now { get; }
Ejemplo:
C#
// C# program to find the execution time of the code using System; class GFG{ static public void Main() { // Marking the start time DateTime start = DateTime.Now; // Iterating using for loop for(int i = 0 ; i < 5 ; i++) { Console.WriteLine("GeeksforGeeks"); } // Marking the end time DateTime end = DateTime.Now; // Total Duration TimeSpan ts = (end - start); // Print the execution time in milliseconds Console.WriteLine("The execution time of the program is {0} ms", ts.TotalMilliseconds); } }
Producción:
GeeksforGeeks GeeksforGeeks GeeksforGeeks GeeksforGeeks GeeksforGeeks The execution time of the program is 176.095 ms