Execution Time Measurement v1.0.0 para .NET Framework y .NET Core
Hace unos días publiqué en NuGet la primera versión de un framework para contabilidad el tiempo que tarda en ejecutarse un método o proceso.
Este framework lo he llamado ExecutionTimeMeasurement.
Se trata de una librería de código abierto que podrás encontrar en mi repositorio de GitHub en este enlace.
Si quieres acceder al paquete de NuGet, podrás hacerlo desde este enlace oficial.
Esta librería se puede utilizar en .NET Framework 4.6.1 ó superior, y en .NET Core 2.0 ó superior.
Si quieres instalar el paquete en tu proyecto, podrás hacerlo desde el gestor de NuGet o bien desde la línea de comandos.
Para .NET Framework, tendrás que ejecutar la siguiente instrucción desde la línea de comandos de NuGet:
Install-Package ExecutionTimeMeasurement -Version 1.0.0
Para .NET Core, tendrás que hacerlo con esta otra línea de comandos:
dotnet add package ExecutionTimeMeasurement –version 1.0.0
A continuación y a modo de ejemplo, escribiré un ejemplo de código para explicar como funciona.
Iniciaré Visual Studio 2017 y crearé un proyecto de .NET Framework. En concreto una aplicación de consola.
Agregaré el paquete NuGet tal y como expliqué anteriormente, y una vez hecho esto, escribiré el código fuente de nuestro sencillo ejemplo.
using ExecutionTimeMeasurement; using System; using System.Collections.Generic; namespace TimeMeasurementDemo { public class Program { public static void Main(string[] args) { Console.WriteLine("Started"); Console.WriteLine(); MeasureResult measureResult = Measurement.Exec(ExecutionWithoutParams); Console.WriteLine($"Name\t\t{measureResult.Name}"); Console.WriteLine($"Description\t{measureResult.Description}"); Console.WriteLine($"Iterations\t{measureResult.Iterations}"); Console.WriteLine(); foreach (var item in measureResult.ResultTime) { Console.WriteLine($"\t{item.Elapsed.TotalMilliseconds} miliseconds"); } Console.WriteLine(); Console.WriteLine("Press any key to close"); Console.ReadKey(); } [Measure(nameof(ExecutionWithoutParams), "Sample test without params", 3)] public static void ExecutionWithoutParams() { List<int> values = new List<int>(); for (int i = 0; i < 1000; i++) { values.Add(i); } } } }
Si ejecutamos nuestro ejemplo, veremos algo parecido a lo que se indica a continuación:
Para .NET Core, no indico el código ni la captura de pantalla porque es exactamente igual.
Espero que esta contribución le venga bien a algún desarrollador.
¡Happy Coding!