Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 33025|Răspunde: 2

[Comunicare] .NET/C# folosește BenchmarkDotNet pentru a testa performanța codului

[Copiază linkul]
Postat pe 03.03.2021 15:51:12 | | | |
Cerințe: În procesul de dezvoltare, aceleași două metode funcționale pot îndeplini cerințele noastre, dar din motive de performanță, vom alege cea mai bună metodă de performanță pentru apelare, cum să testăm performanța codului?

Benchmarking-ul performanței poate ajuta programatorii să compare performanța a două fragmente de cod sau metode, ceea ce poate oferi un bun standard de cuantificare pentru rescrierea sau refactorizarea codului. Fără benchmark-uri de performanță, este greu de imaginat cum poți face diferența de performanță cu ochiul liber când schimbi metoda A în metoda B.

BenchmarkDotNet este o bibliotecă puternică de benchmark de performanță .Net de pe site-ul oficialAutentificarea cu hyperlink este vizibilă.

Mai întâi, vom crea un nou proiect de consolă .NET Core 3.1. Numele proiectului este: BenchmarkTest

Instalează BenchmarkDotNet folosind comanda nuget, iar codul este următorul:


Faceți dublu clic pe proiect pentru a modifica platforma țintă a proiectului, după cum urmează:


Testăm performanța metodelor TestMD5 și TestSHA1 în cadrul .NET Framework 4.7.2 și .NET Core 3.1, respectiv.

Codul este următorul:


Încearcă să o execuți cu următoarea eroare:

Validarea benchmark-urilor:
Assembly BenchmarkTest, care definește benchmark-urile, este neoptimizat
Benchmark-ul a fost construit fără optimizarea activată (cel mai probabil o configurație DEBUG). Te rog, construiește-l în RELEASE.
Dacă doriți să depanați benchmark-urile, vă rugăm să consultațiAutentificarea cu hyperlink este vizibilă.

Schimbă proiectul în modul RELEASEpentru a relua proiectul, așa cum se arată mai jos:


* Rezumat *

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.18363.1379 (1909/November2018Update/19H2)
Intel Core i5-8259U CPU 2.30GHz (Coffee Lake), 1 CPU, 8 nuclee logice și 4 nuclee fizice
.NET Core SDK=5.0.103
  [Gazdă]: .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


|   Metodă |           Job |       Durata de rulare |     Mean |     Eroare |    StdDev |      Min |      Max |   Median |
|--------- |-------------- |-------------- |---------:|----------:|----------:|---------:|---------:|---------:|
|  TestMD5 |    .NET 4.7.2 |    .NET 4.7.2 | 4.119 SUA | 0.0804 us | 0.1045 SUA | 3.958 SUA | 4.318 SUA | 4.123 SUA |
| TestSHA1 |    .NET 4.7.2 |    .NET 4.7.2 | 4.043 SUA | 0.0793 SUA | 0.1085 SUA | 3.926 SUA | 4.289 SUA | 4.003 SUA |
|  TestMD5 | .NET Core 3.1 | .NET Core 3.1 | 1.216 SUA | 0.0122 us | 0.0114 SUA | 1.202 SUA | 1.238 SUA | 1.214 SUA |
| TestSHA1 | .NET Core 3.1 | .NET Core 3.1 | 1.307 SUA | 0.0186 SUA | 0.0165 SUA | 1.284 SUA | 1.336 SUA | 1.307 SUA |

* Indicii *
Excepții
  TestContext.TestSHA1: .NET 4.7.2 -> 1 excepție a fost eliminată (5.52 us)
  TestContext.TestSHA1: .NET Core 3.1 -> 1 excepție a fost eliminată (1.37 us)

* Legende *
  Media: Media aritmetică a tuturor măsurătorilor
  Eroare: Jumătate din intervalul de încredere de 99,9%
  StdDev: Deviația standard a tuturor măsurătorilor
  Minim: Minim
  Max: Maxim
  Mediană: Valoarea care separă jumătatea superioară a tuturor măsurătorilor (percentila 50)
  1 SUA : 1 microsecundă (0,000001 sec)

***** BenchmarkRunner: Sfârșitul *****
** A rămas 0 reper(e) de rulat **
Durată: 00:01:14 (74 secunde), benchmark-uri executate: 4

Timp total global: 00:01:20 (80,63 sec), benchmark-uri executate: 4
* Curățarea artefactelor *
Odată executate, rezultatele testelor sunt salvate în proiectul nostru \BenchmarkTest\bin\Release\netcoreapp3.1\BenchmarkDotNet.Artifacts\results, în csv, html, md și alte formate.



Notă:Selecția cadrelor țintă în SimpleJob este incorectă și poate să nu funcționeze corectAșa cum urmează:

Nu am reușit să construiesc în paralel, trec la construcția secvențială


Resurse:Autentificarea cu hyperlink este vizibilă.




Precedent:Beyond Compare Solution la eroarea "Această cheie de autorizare a fost revocată"
Următor:Apelurile Java către serverul de webservice C# nu recunosc valoarea antetului HTTP SOAPAction
 Proprietarul| Postat pe 31.03.2022 15:56:47 |
1. Traducerea mediei: media, de obicei se referă la media aritmetică sau media geometrică.

Narațiune: Adună toate valorile dintr-un set de secvențe și împarte la numărul total, care este media.

2. Traducerea mediană: valoare intermediară.

Narațiune: Aranjează un set de secvențe în ordine crescătoare, apoi ia valoarea din mijloc, care este valoarea din mijloc.
 Proprietarul| Postat pe 25.05.2023 20:13:33 |
.NET/C# folosește Span pentru a gestiona șiruri cu performanțe ridicate
https://www.itsvse.com/thread-10596-1-1.html
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com