Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 33025|Odpoveď: 2

[Komunikácia] .NET/C# používa BenchmarkDotNet na testovanie výkonu kódu

[Kopírovať odkaz]
Zverejnené 3. 3. 2021 15:51:12 | | | |
Požiadavky: V procese vývoja môžu naše požiadavky spĺňať tie isté dve funkčné metódy, ale z dôvodu výkonu vyberieme najlepšiu výkonnostnú metódu volania, ako otestovať výkon kódu?

Benchmarking výkonu môže programátorom pomôcť porovnať výkon dvoch úryvkov alebo metód kódu, čo môže poskytnúť dobrý kvantifikačný štandard pre prepisovanie alebo refaktorovanie kódu. Bez výkonnostných benchmarkov je ťažké si predstaviť, ako môžete rozpoznať rozdiel vo výkone voľným okom, keď zmeníte metódu A na metódu B.

BenchmarkDotNet je výkonná knižnica .Net benchmarkov výkonu na oficiálnej webovej stránkePrihlásenie na hypertextový odkaz je viditeľné.

Najprv vytvoríme nový .NET Core 3.1 konzolový projekt. Názov projektu je: BenchmarkTest

Nainštalujte BenchmarkDotNet pomocou príkazu nuget, kód je nasledovný:


Dvojitým kliknutím na projekt upravte cieľovú platformu projektu, nasledovne:


Testujeme výkon metód TestMD5 a TestSHA1 pod frameworkmi .NET Framework 4.7.2 a .NET Core 3.1.

Kód je nasledovný:


Skúste ho vykonať s nasledujúcou chybou:

Overovanie benchmarkov:
Assembly BenchmarkTest, ktorý definuje benchmarky, nie je optimalizovaný
Benchmark bol vytvorený bez povolenej optimalizácie (pravdepodobne konfigurácia DEBUG). Prosím, postavte to vo RELEASE.
Ak chcete ladiť benchmarky, pozrite siPrihlásenie na hypertextový odkaz je viditeľné.

Prepnite projekt do režimu RELEASENa opätovné začatie projektu, ako je uvedené nižšie:


* Zhrnutie *

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 logických a 4 fyzické jadrá
.NET Core SDK=5.0.103
  [Hostiteľ] : .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


|   Metóda |           Práca |       Runtime |     Priemer |     Chyba |    StdDev |      Min |      Max |   Medián |
|--------- |-------------- |-------------- |---------:|----------:|----------:|---------:|---------:|---------:|
|  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 US | 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 US | 1.307 US |

* Nápovedy *
Odľahlé hodnoty
  TestContext.TestSHA1: .NET 4.7.2 -> 1 odľahlá hodnota bola odstránená (5.52 us)
  TestContext.TestSHA1: .NET Core 3.1 -> 1 odľahlá hodnota bola odstránená (1.37 US)

* Legendy *
  Priemer : Aritmetický priemer všetkých meraní
  Chyba: polovica z 99,9 % intervalu spoľahlivosti
  StdDev : Štandardná odchýlka všetkých meraní
  Min : Minimum
  Max : Maximum
  Medián: Hodnota oddeľujúca hornú polovicu všetkých meraní (50. percentil)
  1 us : 1 mikrosekunda (0,000001 sekundy)

***** BenchmarkRunner: Koniec *****
** Zostali 0 benchmarkov na spustenie **
Dĺžka behu: 00:01:14 (74 sekúnd), vykonané benchmarky: 4

Celkový globálny čas: 00:01:20 (80,63 s), vykonané benchmarky: 4
* Čistenie artefaktov *
Po spustení sa výsledky testu ukladajú do priečinka Project \BenchmarkTest\bin\Release\netcoreapp3.1\BenchmarkDotNet.Artifacts\results, v csv, html, md a ďalších formátoch.



Nota:Výber cieľových rámcov v SimpleJob je nesprávny a nemusí sa správne vykonávaťTakto:

Nepodarilo sa mi zostaviť paralelne, prechádzam na sekvenčné zostavovanie


Zdroje:Prihlásenie na hypertextový odkaz je viditeľné.




Predchádzajúci:Beyond Compare Riešenie chyby "Tento autorizačný kľúč bol zrušený"
Budúci:Java volania na webový server C# nedokážu rozpoznať hodnotu HTTP hlavičky SOAPAction
 Prenajímateľ| Zverejnené 31. 3. 2022 15:56:47 |
1. Priemerný preklad: priemer, zvyčajne označuje aritmetický priemer alebo geometrický priemer.

Naratívne: Sčítajte všetky hodnoty v súbore sekvencií a vydelte celkovým číslom, čo je priemer.

2. Medián prekladu: medzihodnota.

Naratívne: Usporiadajte sadu postupností vzostupne a potom vezmite strednú hodnotu, ktorá je strednou hodnotou.
 Prenajímateľ| Zverejnené 25. 5. 2023 20:13:33 |
.NET/C# používa Span na spracovanie reťazcov s vysokým výkonom
https://www.itsvse.com/thread-10596-1-1.html
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com