Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 33025|Respuesta: 2

[Comunicación] .NET/C# utiliza BenchmarkDotNet para probar el rendimiento del código

[Copiar enlace]
Publicado en 3/3/2021 15:51:12 | | | |
Requisitos: En el proceso de desarrollo, los mismos dos métodos de funciones pueden cumplir nuestros requisitos, pero por razones de rendimiento, elegiremos el mejor método de rendimiento para llamar, ¿cómo probar el rendimiento del código?

El benchmarking de rendimiento puede ayudar a los programadores a comparar el rendimiento de dos fragmentos de código o métodos, lo que puede proporcionar un buen estándar de cuantificación para la reescritura o refactorización de código. Sin benchmarks de rendimiento, es difícil imaginar cómo puedes notar la diferencia de rendimiento a simple vista cuando cambias el método A al método B.

BenchmarkDotNet es una potente biblioteca de benchmarks de rendimiento .Net en la web oficialEl inicio de sesión del hipervínculo es visible.

Primero, crearemos un nuevo proyecto de consola .NET Core 3.1. El nombre del proyecto es: BenchmarkTest

Instala BenchmarkDotNet usando el comando nuget, el código es el siguiente:


Haz doble clic en el proyecto para modificar la plataforma objetivo del proyecto, de la siguiente manera:


Probamos el rendimiento de los métodos TestMD5 y TestSHA1 bajo los frameworks .NET Framework 4.7.2 y .NET Core 3.1, respectivamente.

El código es el siguiente:


Intenta ejecutarlo con el siguiente error:

Validación de benchmarks:
Assembly BenchmarkTest, que define benchmarks, no está optimizado
El benchmark se construyó sin optimización activada (probablemente una configuración DEBUG). Por favor, inclúyelo en RELEASE.
Si quieres depurar los benchmarks, por favor consultaEl inicio de sesión del hipervínculo es visible.

Cambiar el proyecto a modo LANZAMIENTOPara empezar el proyecto de nuevo, como se muestra a continuación:


* Resumen *

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.18363.1379 (1909/November2018Update/19H2)
CPU Intel Core i5-8259U 2,30GHz (Coffee Lake), 1 CPU, 8 núcleos lógicos y 4 físicos
.NET Core SDK=5.0.103
  [Anfitrión]: .NET Core 3.1.12 (CoreCLR 4.700.21.6504, CoreFX 4.700.21.6905), X64 RyuJIT
  .NET 4.7.2 : .NET Framework 4.8 (4.8.4300.0), X64 RyuJIT
  .NET Core 3.1 : .NET Core 3.1.12 (CoreCLR 4.700.21.6504, CoreFX 4.700.21.6905), X64 RyuJIT


|   Método |           Job |       Duración |     Media |     Error |    StdDev |      Min |      Max |   Mediana |
|--------- |-------------- |-------------- |---------:|----------:|----------:|---------:|---------:|---------:|
|  TestMD5 |    .NET 4.7.2 |    .NET 4.7.2 | 4.119 US | 0.0804 US | 0.1045 US | 3.958 US | 4.318 US | 4.123 US |
| TestSHA1 |    .NET 4.7.2 |    .NET 4.7.2 | 4.043 US | 0.0793 US | 0.1085 US | 3.926 US | 4.289 US | 4.003 US |
|  TestMD5 | .NET Core 3.1 | .NET Core 3.1 | 1.216 US | 0.0122 US | 0.0114 US | 1.202 US | 1.238 US | 1.214 US |
| TestSHA1 | .NET Core 3.1 | 1.307 US | 0.0186 US | 0.0165 US | 1.284 US | 1.336 US | 1.307 US |

* Pistas *
Casos atípicos
  TestContext.TestSHA1: .NET 4.7.2 -> 1 acaso fue eliminado (5.52 us)
  TestContext.TestSHA1: .NET Core 3.1 -> 1 fue eliminado el valor atípico (1.37 us)

* Leyendas *
  Media: media aritmética de todas las mediciones
  Error: La mitad del intervalo de confianza del 99,9%
  Desarrollo Estándar: desviación estándar de todas las mediciones
  Mínimo: Mínimo
  Max: Máximo
  Mediana: Valor que separa la mitad superior de todas las mediciones (percentil 50)
  1 EE. UU. : 1 microsegundo (0,000001 seg)

***** BenchmarkRunner: Fin *****
** Se mantuvo 0 benchmark por ejecutar **
Duración: 00:01:14 (74 seg), benchmarks ejecutados: 4

Tiempo total global: 00:01:20 (80,63 seg), benchmarks ejecutados: 4
* Limpieza de artefactos *
Una vez ejecutados, los resultados de la prueba se guardan en nuestra carpeta del proyecto \BenchmarkTest\bin\Release\netcoreapp3.1\BenchmarkDotNet.Artifacts\results, en csv, html, md y otros formatos.



Nota:La selección de tramas objetivo de SimpleJob es incorrecta y puede no ejecutarse correctamenteComo sigue:

No se pudo compilar en paralelo, cambiando a compilación secuencial


Recursos:El inicio de sesión del hipervínculo es visible.




Anterior:Más allá de la solución de comparación al error "Esta clave de autorización ha sido revocada"
Próximo:Las llamadas a Java al servidor de servicios web C# no reconocen el valor del encabezado HTTP SOAPAction
 Propietario| Publicado en 31/3/2022 15:56:47 |
1. Traducción de media: media, suele referirse a la media aritmética o media geométrica.

Narrativa: Suma todos los valores de un conjunto de secuencias y divide por el número total, que es la media.

2. Traducción mediana: valor intermedio.

Narrativa: Organiza un conjunto de secuencias en orden ascendente y luego toma el valor del medio, que es el valor del medio.
 Propietario| Publicado en 25/5/2023 20:13:33 |
.NET/C# utiliza Span para manejar cadenas de alto rendimiento
https://www.itsvse.com/thread-10596-1-1.html
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com