Medición de tiempo exacto para pruebas de rendimiento en C#

Muhammad Zeeshan 12 octubre 2023
  1. Resumen de Cronómetro
  2. Implementar Cronómetro para Medición de Tiempo Exacto para Pruebas de Rendimiento en C#
Medición de tiempo exacto para pruebas de rendimiento en C#

En este artículo, aprenderá a medir el tiempo exacto para las pruebas de rendimiento con C#. El espacio de nombres System.Diagnostics tiene una excelente clase conocida como Stopwatch que proporciona un método sencillo para medir la cantidad de tiempo que lleva una ejecución.

Vamos a tener una visión general de Cronómetro.

Resumen de Cronómetro

La clase integrada Cronómetro se puso a disposición en el marco .Net y se puede utilizar en diversas situaciones. Le ayuda a optimizar su código, seleccionar la mejor opción entre varias soluciones potenciales o localizar un pico de rendimiento.

En otras palabras, un Cronómetro es un dispositivo simple que puede determinar cuánto tiempo lleva completar un proceso o actividad en particular. En circunstancias en las que la cantidad de tiempo juega un papel crucial, es útil optimizar el código.

Tiene un alto nivel de precisión y es útil cuando otras herramientas de monitoreo con un mayor nivel de complejidad no están disponibles o no son necesarias en aras de la simplicidad.

Implementar Cronómetro para Medición de Tiempo Exacto para Pruebas de Rendimiento en C#

Echemos un vistazo a la implementación básica de Cronómetro. Las siguientes características se pueden utilizar para determinar la cantidad de tiempo que ha pasado:

  1. .Transcurrido
  2. .Milisegundos transcurridos
  3. .ElapsedTicks

En la siguiente demostración, hemos implementado la función .Elapsed, que generará el tiempo transcurrido del proceso.

Ejemplo

  • Para utilizar la utilidad Cronómetro, importe las siguientes bibliotecas:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Diagnostics;
    
  • En el método Main(), crea el objeto Cronómetro llamado s.
    Stopwatch s = new Stopwatch();
    
  • Iniciar la medición del proceso:
    s.Start();
    
  • Escriba su código de proceso ahora. Por ejemplo, usamos un ciclo básico for() para imprimir un valor de cadena.
    for (int i = 0; i < 5; i++) {
      Console.WriteLine("Myself M.Zeeshan, Let's Code!");
    }
    
  • Después de escribir su código, detenga la medición del proceso.
    s.Stop();
    
  • Por último, usaremos la función .Elapsed para comprobar el tiempo del proceso.
    Console.WriteLine("Time elapsed: {0}", s.Elapsed);
    

Código fuente completo:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace StopwatchbyZeeshan {
  class Program {
    static void Main(string[] args) {
      Stopwatch s = new Stopwatch();
      s.Start();
      for (int i = 0; i < 5; i++) {
        Console.WriteLine("Myself M.Zeeshan, Let's Code!");
      }
      s.Stop();
      Console.WriteLine("Total Time elapsed: {0}", s.Elapsed);
    }
  }
}

Producción :

Myself M.Zeeshan, Let's Code!
Myself M.Zeeshan, Let's Code!
Myself M.Zeeshan, Let's Code!
Myself M.Zeeshan, Let's Code!
Myself M.Zeeshan, Let's Code!
Total Time elapsed: 00:00:00.0144367
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn