Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 33025|Válasz: 2

[Kommunikáció] .NET/C# a BenchmarkDotNet-et használja a kód teljesítményének tesztelésére

[Linket másol]
Közzétéve 2021. 03. 03. 15:51:12 | | | |
Követelmények: A fejlesztési folyamatban ugyanazok a két függvény módszer képes megfelelni a követelményeinknek, de teljesítmény miatt a legjobb teljesítmény módszert választjuk ki a híváshoz, hogyan teszteljük a kód teljesítményét?

A teljesítménybenchmarking segíthet a programozóknak összehasonlítani két kódrészlet vagy módszer teljesítményét, ami jó mennyiségi szabványt nyújthat a kód újraírásához vagy refaktorálásához. Teljesítménymérföldek nélkül nehéz elképzelni, hogyan lehet szabad szemmel megkülönböztetni a teljesítményt, amikor az A módszert B módszerre váltod.

A BenchmarkDotNet egy hatékony .Net teljesítménymérő könyvtár a hivatalos weboldalonA hiperlink bejelentkezés látható.

Először egy új .NET Core 3.1 konzolprojektet fogunk létrehozni. A projekt neve: BenchmarkTest

Telepítsd a BenchmarkDotNet-et a nuget parancsral, a kód a következő:


Duplán kattints a projektre, hogy módosítsd a projekt célplatformját, az alábbiak szerint:


A TestMD5 és TestSHA1 módszerek teljesítményét a .NET Framework 4.7.2 és .NET Core 3.1 keretrendszereken vizsgáljuk.

A kódex a következő:


Próbáld meg végrehajtani a következő hibával:

Mérföldkés validálása:
Az Assembly BenchmarkTest nem optimalizált
A Benchmark optimalizálás nélkül készült (valószínűleg DEBUG konfiguráció volt). Kérlek, építsd fel RELEASE állapotban.
Ha hibázni szeretnél a benchmarkokat, nézd megA hiperlink bejelentkezés látható.

Kapcsold át a projektet RELEASE módrahogy újra elkezdjük a projektet, ahogy az alábbiakban látható:


* Összefoglaló *

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 logikai és 4 fizikai mag
.NET Core SDK=5.0.103
  [Gazda] : .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ódszer |           Munka |       Játékidő |     Mean |     Hiba |    StdDev |      Min |      Max |   Medián |
|--------- |-------------- |-------------- |---------:|----------:|----------:|---------:|---------:|---------:|
|  TestMD5 |    .NET 4.7.2 |    .NET 4.7.2 | 4.119 USA | 0,0804 amerikai | 0,1045 amerikai | 3,958 amerikai | 4.318 amerikai | 4.123 US |
| TestSHA1 |    .NET 4.7.2 |    .NET 4.7.2 | 4.043 amerikai | 0,0793 amerikai | 0,1085 amerikai | 3.926 amerikai | 4.289 amerikai | 4.003 amerikai |
|  TestMD5 | .NET Core 3.1 | .NET Core 3.1 | 1,216 amerikai | 0,0122 amerikai | 0,0114 amerikai | 1,202 amerikai | 1.238 amerikai | 1.214 amerikai |
| TestSHA1 | .NET Core 3.1 | .NET Core 3.1 | 1.307 amerikai | 0,0186 amerikai | 0,0165 amerikai | 1,284 amerikai | 1.336 amerikai | 1.307 amerikai |

* Utalások *
Kivételek
  TestContext.TestSHA1: .NET 4.7.2 -> 1 outlier eltávolítva (5.52 us)
  TestContext.TestSHA1: .NET Core 3.1 -> 1 outlier eltávolítva (1.37 us)

* Legendák *
  Átlag: Minden mérés aritmetikai átlaja
  Hiba: A 99,9%-os megbízhatósági intervallum fele
  StdDev: Minden mérés szabványszórája
  Min: Minimum
  Max: Maximum
  Medián: Az összes mérés felső felét (50. percentilis) elválasztó érték
  1 mi: 1 mikroszekundum (0,000001 másodperc)

***** BenchmarkRunner: Vége *****
** Maradt 0 mércéj(ek) a futásra **
Játékidő: 00:01:14 (74 másodperc), végrehajtott benchmarkok: 4

Globális összidő: 00:01:20 (80,63 másodperc), végrehajtott benchmarkok: 4
* Leletek takarítása *
A teszteredményeket a projektünk \BenchmarkTest\bin\Release\netcoreapp3.1\BenchmarkDotNet.Artifacts\results mappába mentjük, csv, html, md és más formátumokban.



Jegyzet:A SimpleJob célkeret-választása helytelen, és nem feltétlenül hajt végre megfelelőenKövetkezőképpen:

Nem sikerült párhuzamos építkezni, átváltottam szekvenciális buildre


Erőforrások:A hiperlink bejelentkezés látható.




Előző:Beyond Compare megoldás a "Ezt az engedélyezési kulcsot visszavonták" hiba miatt
Következő:A Java hívások a C# webszolgáltatás szerverére nem ismerik fel a HTTP fejléc SOAPAction értékét
 Háziúr| Közzétéve 2022. 03. 31. 15:56:47 |
1. Átlagfordítás: átlag, általában az aritmetikai átlagra vagy geometriai átlagra utal.

Narratív értelmezés: Összeadjuk az összes értéket egy sorozathalmazban, és osztjuk el az összértékgel, ami az átlag.

2. Medián fordítás: köztes érték.

Narratív történet: Rendezz egy sorozathalmazt növekvő sorrendben, majd vegyük a középső értéket, ami a középső érték.
 Háziúr| Közzétéve 2023. 05. 25. 20:13:33 |
A .NET/C# a Span-t használja a magas teljesítményű húrok kezelésére
https://www.itsvse.com/thread-10596-1-1.html
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com