Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 33025|Répondre: 2

[Communication] .NET/C# utilise BenchmarkDotNet pour tester la performance du code

[Copié le lien]
Publié sur 03/03/2021 15:51:12 | | | |
Exigences : Dans le processus de développement, les deux mêmes méthodes de fonctions peuvent répondre à nos exigences, mais pour des raisons de performance, nous choisirons la meilleure méthode de performance pour appeler, comment tester la performance du code ?

Le benchmarking des performances peut aider les programmeurs à comparer la performance de deux extraits de code ou méthodes, ce qui peut constituer une bonne norme de quantification pour la réécriture ou la refactorisation du code. Sans benchmarks de performance, il est difficile d’imaginer comment on peut distinguer la performance à l’œil nu lorsqu’on change la méthode A vers la méthode B.

BenchmarkDotNet est une puissante bibliothèque de benchmarks de performance .Net sur le site officielLa connexion hyperlientérée est visible.

Tout d’abord, nous allons créer un nouveau projet console .NET Core 3.1. Le nom du projet est : BenchmarkTest

Installez BenchmarkDotNet en utilisant la commande nuget, le code est le suivant :


Double-cliquez sur le projet pour modifier la plateforme cible du projet, comme suit :


Nous testons les performances des méthodes TestMD5 et TestSHA1 sous les frameworks .NET Framework 4.7.2 et .NET Core 3.1, respectivement.

Le code est le suivant :


Tentez de l’exécuter avec l’erreur suivante :

Validation des benchmarks :
Assembly BenchmarkTest qui définit les benchmarks n’est pas optimisé
Benchmark a été construit sans optimisation activée (très probablement une configuration DEBUG). S’il vous plaît, intégrez-le dans RELEASE.
Si vous souhaitez déboguer les benchmarks, veuillez consulterLa connexion hyperlientérée est visible.

Passer le projet en mode RELEASEPour relancer le projet, comme montré ci-dessous :


* Résumé *

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.18363.1379 (1909/novembre 2018Mise à jour/19H2)
Intel Core i5-8259U CPU 2,30GHz (Coffee Lake), 1 CPU, 8 cœurs logiques et 4 cœurs physiques
.NET Core SDK=5.0.103
  [Hôte] : .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éthode |           Job |       Durée |     Mean |     Erreur |    StdDev |      Min |      Max |   Médiane |
|--------- |-------------- |-------------- |---------:|----------:|----------:|---------:|---------:|---------:|
|  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 | .NET Core 3.1 | 1.307 US | 0,0186 US | 0,0165 US | 1.284 US | 1.336 US | 1.307 US |

* Indices *
Cas particuliers
  TestContext.TestSHA1 : .NET 4.7.2 -> 1 outlier a été supprimé (5.52 us)
  TestContext.TestSHA1 : .NET Core 3.1 -> 1 cas aberrant a été supprimé (1.37 us)

* Légendes *
  Moyenne : Moyenne arithmétique de toutes les mesures
  Erreur : moitié de l’intervalle de confiance à 99,9 %
  Développement standard : écart-type de toutes les mesures
  Min    : Minimum
  Max : Maximum
  Médiane : Valeur séparant la moitié supérieure de toutes les mesures (50e percentile)
  1 US : 1 microseconde (0,000001 sec)

***** BenchmarkRunner : Fin *****
** Resté 0(s) benchmark(s) à exécuter **
Durée : 00:01:14 (74 s), benchmarks exécutés : 4

Temps total global : 00:01:20 (80,63 s), benchmarks exécutés : 4
* Nettoyage des artefacts *
Une fois exécutés, les résultats du test sont sauvegardés dans notre dossier projet \BenchmarkTest\bin\Release\netcoreapp3.1\BenchmarkDotNet.Artifacts\results, sous forme de csv, html, md et d’autres formats.



Note:La sélection de trame cible par SimpleJob est incorrecte et peut ne pas s’exécuter correctementComme suit:

Échec de compilation en parallèle, passage à la compilation séquentielle


Ressources:La connexion hyperlientérée est visible.




Précédent:Au-delà de la solution de comparaison à l’erreur « Cette clé d’autorisation a été révoquée »
Prochain:Les appels Java vers le serveur de services web C# ne reconnaissent pas la valeur de l’en-tête HTTP SOAPAction
 Propriétaire| Publié sur 31/03/2022 15:56:47 |
1. Traduction de la moyenne : moyenne, fait généralement référence à la moyenne arithmétique, ou moyenne géométrique.

Récit : additionner toutes les valeurs d’un ensemble de séquences et diviser par le nombre total, qui est la moyenne.

2. Traduction médiane : valeur intermédiaire.

Récit : Disposez un ensemble de séquences dans un ordre croissant, puis prenez la valeur du milieu, qui est la valeur du milieu.
 Propriétaire| Publié sur 25/05/2023 20:13:33 |
.NET/C# utilise Span pour gérer des chaînes à haute performance
https://www.itsvse.com/thread-10596-1-1.html
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com