Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 33025|Svare: 2

[Kommunikasjon] .NET/C# bruker BenchmarkDotNet for å teste kodeytelse

[Kopier lenke]
Publisert på 03.03.2021 15:51:12 | | | |
Krav: I utviklingsprosessen kan de samme to funksjonsmetodene oppfylle kravene våre, men av ytelseshensyn velger vi den beste ytelsesmetoden for kall, hvordan tester vi ytelsen til koden?

Ytelsesbenchmarking kan hjelpe programmerere med å sammenligne ytelsen til to kodesnippets eller metoder, noe som kan gi en god kvantififikasjonsstandard for kodeomskriving eller refaktorering. Uten ytelsesbenchmarks er det vanskelig å forestille seg hvordan du kan se forskjell i ytelse med det blotte øye når du bytter metode A til metode B.

BenchmarkDotNet er et kraftig .Net-ytelsesreferansebibliotek på den offisielle nettsidenInnloggingen med hyperkoblingen er synlig.

Først skal vi lage et nytt .NET Core 3.1-konsollprosjekt. Prosjektnavnet er: BenchmarkTest

Installer BenchmarkDotNet med nuget-kommandoen, koden er som følger:


Dobbeltklikk på prosjektet for å endre målplattformen til prosjektet, som følger:


Vi tester ytelsen til TestMD5- og TestSHA1-metodene under henholdsvis .NET Framework 4.7.2 og .NET Core 3.1-rammeverkene.

Koden er som følger:


Prøv å utføre det med følgende feil:

Validering av referansepunkter:
Assembly BenchmarkTest, som definerer benchmarks, er ikke-optimalisert
Benchmark ble bygget uten optimalisering aktivert (mest sannsynlig en DEBUG-konfigurasjon). Vær så snill, bygg det i RELEASE.
Hvis du vil feilsøke benchmarkene, se gjerneInnloggingen med hyperkoblingen er synlig.

Bytt prosjektet til RELEASE-modusFor å starte prosjektet på nytt, som vist nedenfor:


* Sammendrag *

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.18363.1379 (1909/november 2018Oppdatering/19H2)
Intel Core i5-8259U CPU 2,30GHz (Coffee Lake), 1 CPU, 8 logiske og 4 fysiske kjerner
.NET Core SDK=5.0.103
  [Vert] : .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


|   Metode |           Jobb |       Kjøretid |     Mean |     Feil |    StdDev |      Min |      Max |   Median |
|--------- |-------------- |-------------- |---------:|----------:|----------:|---------:|---------:|---------:|
|  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 USA | 0.0793 US | 0.1085 US | 3,926 US | 4.289 US | 4.003 USA |
|  TestMD5 | .NET Core 3.1 | .NET Core 3.1 | 1.216 USA | 0.0122 us | 0.0114 US | 1.202 USA | 1.238 US | 1.214 USA |
| 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 |

* Hint *
Unntak
  TestContext.TestSHA1: .NET 4.7.2 -> 1 avviker ble fjernet (5,52 us)
  TestContext.TestSHA1: .NET Core 3.1 -> 1 avvikere ble fjernet (1.37 us)

* Legender *
  Gjennomsnitt: Aritmetisk gjennomsnitt for alle målinger
  Feil: Halvparten av 99,9 % konfidensintervall
  StdDev: Standardavvik for alle målinger
  Min : Minimum
  Max: Maksimum
  Median: Verdi som skiller den øvre halvdelen av alle målinger (50. persentil)
  1 us: 1 mikrosekund (0,000001 sek)

***** BenchmarkRunner: Slutt *****
** Var fortsatt 0 benchmark(er) å kjøre **
Kjøretid: 00:01:14 (74 sek), utførte benchmarks: 4

Global total tid: 00:01:20 (80,63 sek), utførte benchmarks: 4
* Opprydding av gjenstander *
Når testresultatene er utført, lagres de i prosjektet vårt \BenchmarkTest\bin\Release\netcoreapp3.1\BenchmarkDotNet.Artifacts\results-mappe, i csv-, html-, md- og andre formater.



Notat:Valg av SimpleJob-målramme er feil og kan hende det ikke utføres riktigSom følger:

Klarte ikke å bygge parallelt, byttet til sekvensiell bygging


Ressurser:Innloggingen med hyperkoblingen er synlig.




Foregående:Beyond Compare Løsning på feilen «Denne autorisasjonsnøkkelen har blitt tilbakekalt»
Neste:Java-kall til C#-webtjenesteserveren klarer ikke å gjenkjenne verdien av HTTP-headeren SOAPAction
 Vert| Publisert på 31.03.2022 15:56:47 |
1. Gjennomsnittlig translasjon: gjennomsnitt, refererer vanligvis til det aritmetiske gjennomsnittet, eller geometriske gjennomsnittet.

Fortelling: Legg sammen alle verdiene i et sett med sekvenser og del på totaltallet, som er gjennomsnittet.

2. Medianoversettelse: mellomverdi.

Fortelling: Arranger et sett med sekvenser i stigende rekkefølge, og ta deretter midtverdien, som er midtverdien.
 Vert| Publisert på 25.05.2023 20:13:33 |
.NET/C# bruker Span for å håndtere strenger med høy ytelse
https://www.itsvse.com/thread-10596-1-1.html
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com