Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 33025|Vastaus: 2

[Viestintä] .NET/C# käyttää BenchmarkDotNetia koodin suorituskyvyn testaamiseen

[Kopioi linkki]
Julkaistu 3.3.2021 15.51.12 | | | |
Vaatimukset: Kehitysprosessissa samat kaksi funktiomenetelmää voivat täyttää vaatimuksemme, mutta suorituskyvyn vuoksi valitsemme parhaan suorituskyvyn menetelmän kutsumiseen, miten testata koodin suorituskykyä?

Suorituskyvyn vertailu voi auttaa ohjelmoijia vertailemaan kahden koodipätkän tai metodin suorituskykyä, mikä voi tarjota hyvän kvantifiointistandardin koodin uudelleenkirjoittamiseen tai refaktorointiin. Ilman suorituskykymittareita on vaikea kuvitella, miten paljain silmin erottaa suorituskyvyn ero, kun vaihdat menetelmän A menetelmään B.

BenchmarkDotNet on tehokas .Net-suorituskyvyn vertailukirjasto virallisella verkkosivustollaHyperlinkin kirjautuminen on näkyvissä.

Ensiksi luomme uuden .NET Core 3.1 -konsoliprojektin. Projektin nimi on: BenchmarkTest

Asenna BenchmarkDotNet nuget-komennolla, koodi on seuraava:


Kaksoisklikkaa projektia muuttaaksesi projektin kohdealustaa seuraavasti:


Testaamme TestMD5- ja TestSHA1-menetelmien suorituskykyä .NET Framework 4.7.2 ja .NET Core 3.1 -kehysten mukaisesti.

Koodi on seuraava:


Yritä suorittaa se seuraavalla virheellä:

Vertailuarvojen validointi:
Assembly BenchmarkTest, joka määrittelee benchmarkit, ei ole optimoitu
Benchmark rakennettiin ilman optimointia (todennäköisesti DEBUG-konfiguraatio). Ole hyvä, rakenna se RELEASE-tilassa.
Jos haluat debugata benchmarkit, katsoHyperlinkin kirjautuminen on näkyvissä.

Vaihda projekti RELEASE-tilaanaloittaakseen projektin uudelleen, kuten alla on esitetty:


* Yhteenveto *

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.18363.1379 (1909/marraskuu2018Päivitys/19H2)
Intel Core i5-8259U CPU 2.30GHz (Coffee Lake), 1 CPU, 8 loogista ja 4 fyysistä ydintä
.NET Core SDK=5.0.103
  [Isäntä]: .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


|   Menetelmä |           Työ |       Kesto |     Mean |     Virhe |    StdDev |      Min |      Max |   Mediaani |
|--------- |-------------- |-------------- |---------:|----------:|----------:|---------:|---------:|---------:|
|  TestMD5 |    .NET 4.7.2 |    .NET 4.7.2 | 4.119 meidät | 0,0804 US | 0,1045 US | 3,958 Yhdysvaltojaan | 4.318 US | 4.123 US |
| TestSHA1 |    .NET 4.7.2 |    .NET 4.7.2 | 4.043 Yhdysvaltojaan | 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 Yhdysvaltojaan | 1.307 US |

* Vihjeitä *
Poikkeamat
  TestContext.TestSHA1: .NET 4.7.2 -> 1 poikkeama poistettiin (5.52 us)
  TestContext.TestSHA1: .NET Core 3.1 -> 1 poikkeama poistettiin (1.37 us)

* Legendat *
  Keskiarvo: Kaikkien mittausten aritmeettinen keskiarvo
  Virhe: Puolet 99,9 %:n luottamusvälistä
  StdDev: Kaikkien mittausten keskihajonta
  Min : Minimi
  Max: Maximum
  Mediaani: Arvo, joka erottaa kaikkien mittausten korkeamman puoliskon (50. prosenttipiste)
  1 us: 1 mikrosekunti (0,000001 sekuntia)

***** BenchmarkRunner: Loppu *****
** Jäljellä oli 0 vertailuarvoa jäljellä **
Kesto: 00:01:14 (74 s), suoritetut benchmarkit: 4

Globaali kokonaisaika: 00:01:20 (80,63 s), suoritetut benchmarkit: 4
* Esineiden siivous *
Kun testi on suoritettu, tulokset tallennetaan projektiimme \BenchmarkTest\bin\Release\netcoreapp3.1\BenchmarkDotNet.Artifacts\resultss-kansioon csv-, html-, md- ja muissa formaateissa.



Muistiinpano:SimpleJob-kohdekehyksen valinta on virheellinen eikä välttämättä toimi oikeinSeuraavasti:

Epäonnistuin rinnakkaisrakentamisessa, vaihdoin peräkkäiseen buildiin


Varat:Hyperlinkin kirjautuminen on näkyvissä.




Edellinen:Vertailun ulkopuolella Ratkaisu virheeseen "Tämä valtuutusavain on peruutettu"
Seuraava:Java-kutsut C#-webservice-palvelimelle eivät tunnista HTTP-otsikon SOAPActionin arvoa
 Vuokraisäntä| Julkaistu 31.3.2022 15.56.47 |
1. Keskiarvon käännös: keskiarvo, viittaa yleensä aritmeettiseen keskiarvoon tai geometriseen keskiarvoon.

Kertomus: Laske kaikki arvot yhteen jonojen joukossa ja jaa kokonaisluvulla, joka on keskiarvo.

2. Mediaanikäännös: väliarvo.

Kertomus: Järjestä joukko jonoja kasvavaan järjestykseen ja ota sitten keskimmäinen arvo, joka on keskiarvo.
 Vuokraisäntä| Julkaistu 25.5.2023 20.13.33 |
.NET/C# käyttää Spania käsitelläkseen kieliä korkealla suorituskyvyllä
https://www.itsvse.com/thread-10596-1-1.html
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com