Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 33025|Svar: 2

[Kommunikation] .NET/C# bruger BenchmarkDotNet til at teste kodeydelse

[Kopier link]
Opslået på 03/03/2021 15.51.12 | | | |
Krav: I udviklingsprocessen kan de samme to funktionsmetoder opfylde vores krav, men af hensyn til ydeevnen vælger vi den bedste ydeevnemetode til kald, hvordan tester vi kodens ydeevne?

Performance benchmarking kan hjælpe programmører med at sammenligne ydeevnen af to kodeuddrag eller metoder, hvilket kan give en god kvantificeringsstandard for kodeomskrivning eller refaktorering. Uden performance-benchmarks er det svært at forestille sig, hvordan man kan se forskel i ydeevne med det blotte øje, når man skifter metode A til metode B.

BenchmarkDotNet er et kraftfuldt .Net-performance-benchmarkbibliotek på den officielle hjemmesideHyperlink-login er synlig.

Først vil vi skabe et nyt .NET Core 3.1 konsolprojekt. Projektets navn er: BenchmarkTest

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


Dobbeltklik på projektet for at ændre projektets målplatform som følger:


Vi tester ydeevnen af TestMD5- og TestSHA1-metoderne under henholdsvis .NET Framework 4.7.2 og .NET Core 3.1 frameworks.

Koden er som følger:


Forsøg at udføre det med følgende fejl:

Validering af benchmarks:
Assembly BenchmarkTest, som definerer benchmarks, er ikke-optimeret
Benchmark blev bygget uden optimering aktiveret (sandsynligvis en DEBUG-konfiguration). Byg det venligst i RELEASE.
Hvis du vil fejlfinde benchmarksene, så se venligstHyperlink-login er synlig.

Skift projektet til RELEASE-tilstandFor at starte projektet igen, som vist nedenfor:


* Resumé *

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.18363.1379 (1909/november 2018Opdatering/19H2)
Intel Core i5-8259U CPU 2,30GHz (Coffee Lake), 1 CPU, 8 logiske og 4 fysiske kerner
.NET Core SDK=5.0.103
  [Vært]: .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 |           Job |       Spilletid |     Mean |     Fejl |    StdDev |      Min |      Max |   Median |
|--------- |-------------- |-------------- |---------:|----------:|----------:|---------:|---------:|---------:|
|  TestMD5 |    .NET 4.7.2 |    .NET 4.7.2 | 4.119 USA | 0.0804 us | 0.1045 US | 3.958 US | 4.318 us | 4.123 USA |
| TestSHA1 |    .NET 4.7.2 |    .NET 4.7.2 | 4.043 USA | 0.0793 us | 0.1085 us | 3,926 US | 4.289 USA | 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 USA | 1.214 USA |
| TestSHA1 | .NET Core 3.1 | .NET Core 3.1 | 1.307 US | 0.0186 us | 0.0165 us | 1.284 USA | 1.336 USA | 1.307 US |

* Hints *
Undtagelser
  TestContext.TestSHA1: .NET 4.7.2 -> 1 outlier blev fjernet (5,52 us)
  TestContext.TestSHA1: .NET Core 3.1 -> 1 outlier blev fjernet (1.37 us)

* Legender *
  Middelværdi: Aritmetisk gennemsnit af alle målinger
  Fejl: Halvdelen af 99,9% konfidensinterval
  StdDev: Standardafvigelse af alle målinger
  Min : Minimum
  Max : Maksimum
  Median: Værdi, der adskiller den øverste halvdel af alle målinger (50. percentil)
  1 us: 1 mikrosekund (0,000001 sek)

***** BenchmarkRunner: Slut *****
** Der var stadig 0 benchmark(e) at køre **
Kørselstid: 00:01:14 (74 sek), udførte benchmarks: 4

Global samlet tid: 00:01:20 (80,63 sek), udførte benchmarks: 4
* Oprydning af artefakter *
Når testresultaterne er udført, gemmes de i vores projektmappe \BenchmarkTest\bin\Release\netcoreapp3.1\BenchmarkDotNet.Artifacts\results, i csv-, html-, md- og andre formater.



Seddel:Valget af SimpleJob-målramme er forkert og kan blive udført forkert korrektSom følger:

Mislykkedes i at bygge parallelt, skiftede til sekventiel build


Ressourcer:Hyperlink-login er synlig.




Tidligere:Beyond Compare Solution til fejlen "Denne autorisationsnøgle er blevet tilbagekaldt"
Næste:Java-kald til C# webservice-serveren kan ikke genkende værdien af HTTP-headeren SOAPAction
 Udlejer| Opslået på 31/03/2022 15.56.47 |
1. Middeltranslation: middel, refererer normalt til det aritmetiske gennemsnit eller det geometriske gennemsnit.

Fortælling: Læg alle værdierne sammen i et sæt sekvenser og dividerer med det samlede tal, som er gennemsnittet.

2. Medianoversættelse: mellemværdi.

Fortælling: Arranger et sæt sekvenser i stigende rækkefølge, og tag derefter den midterste værdi, som er den midterste værdi.
 Udlejer| Opslået på 25/05/2023 20.13.33 |
.NET/C# bruger Span til at håndtere strenge med høj ydeevne
https://www.itsvse.com/thread-10596-1-1.html
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com