Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 33025|Atbildi: 2

[Paziņojums] .NET/C# izmanto BenchmarkDotNet, lai pārbaudītu koda veiktspēju

[Kopēt saiti]
Publicēts 03.03.2021 15:51:12 | | | |
Prasības: Izstrādes procesā tās pašas divas funkciju metodes var atbilst mūsu prasībām, bet veiktspējas apsvērumu dēļ mēs izvēlēsimies labāko zvanīšanas veiktspējas metodi, kā pārbaudīt koda veiktspēju?

Veiktspējas salīdzinošā novērtēšana var palīdzēt programmētājiem salīdzināt divu koda fragmentu vai metožu veiktspēju, kas var nodrošināt labu kvantitatīvas noteikšanas standartu koda pārrakstīšanai vai pārveidošanai. Bez veiktspējas etaloniem ir grūti iedomāties, kā jūs varat noteikt veiktspējas atšķirību ar neapbruņotu aci, mainot A metodi uz B metodi.

BenchmarkDotNet ir jaudīga .Net veiktspējas etalonu bibliotēka oficiālajā vietnēHipersaites pieteikšanās ir redzama.

Vispirms mēs izveidosim jaunu .NET Core 3.1 konsoles projektu. Projekta nosaukums ir: BenchmarkTest

Instalējiet BenchmarkDotNet, izmantojot komandu nuget, kods ir šāds:


Veiciet dubultklikšķi uz projekta, lai modificētu projekta mērķa platformu, kā norādīts tālāk.


Mēs pārbaudām TestMD5 un TestSHA1 metožu veiktspēju attiecīgi .NET Framework 4.7.2 un .NET Core 3.1 ietvaros.

Kods ir šāds:


Mēģiniet to izpildīt ar šādu kļūdu:

Etalonu apstiprināšana:
Montāžas BenchmarkTest, kas definē etalonus, nav optimizēts
Etalons tika izveidots bez iespējotas optimizācijas (visticamāk, DEBUG konfigurācija). Lūdzu, izveidojiet to RELEASE.
Ja vēlaties atkļūdot etalonus, lūdzu, skatietHipersaites pieteikšanās ir redzama.

Pārslēgt projektu uz RELEASE režīmu, lai sāktu projektu no jauna, kā parādīts tālāk:


* Kopsavilkums *

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.18363.1379 (1909/2018. gada novembrisAtjauninājums/19H2)
Intel Core i5-8259U CPU 2.30GHz (Coffee Lake), 1 CPU, 8 loģiskie un 4 fiziskie kodoli
.NET Core SDK=5.0.103
  [Resursdators] : .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 |           Darbs |       Izpildlaiks |     Vidējais |     Kļūda |    StdDev |      Min |      Maks |   Mediāna |
|--------- |-------------- |-------------- |---------:|----------:|----------:|---------:|---------:|---------:|
|  TestMD5 |    .NET 4.7.2 |    .NET 4.7.2 | 4.119 ASV | 0,0804 ASV | 0,1045 ASV | 3.958 ASV | 4.318 ASV | 4.123 ASV |
| TestsSHA1 |    .NET 4.7.2 |    .NET 4.7.2 | 4.043 ASV | 0,0793 ASV | 0,1085 ASV | 3.926 ASV | 4.289 ASV | 4.003 ASV |
|  TestMD5 | .NET Core 3.1 | .NET Core 3.1 | 1.216 ASV | 0,0122 ASV | 0,0114 ASV | 1.202 ASV | 1.238 ASV | 1.214 ASV |
| TestSHA1 | .NET Core 3.1 | .NET Core 3.1 | 1.307 ASV | 0,0186 ASV | 0,0165 ASV | 1.284 ASV | 1.336 ASV | 1.307 ASV |

* Padomi *
Izvirzītie rādītāji
  TestContext.TestSHA1: .NET 4.7.2 -> 1 izņēmums tika noņemts (5.52 us)
  TestContext.TestSHA1: .NET Core 3.1 -> 1 izņēmums tika noņemts (1.37 us)

* Leģendas *
  Vidējais : visu mērījumu vidējais aritmētiskais
  Kļūda : puse no 99,9% ticamības intervāla
  StdDev : visu mērījumu standartnovirze
  Min : Minimālais
  Maks. : Maksimālais
  Mediāna : Vērtība, kas atdala visu mērījumu augšējo pusi (50. procentile)
  1 us: 1 mikrosekunde (0.000001 sek.)

***** BenchmarkRunner: beigu *****
** Palika 0 etalons(-i), kas jāizpilda **
Izpildes laiks: 00:01:14 (74 sek.), izpildītie etaloni: 4

Kopējais laiks pasaulē: 00:01:20 (80.63 sek.), izpildītie etaloni: 4
* Artefaktu tīrīšana *
Pēc izpildes testa rezultāti tiek saglabāti mūsu projektā \BenchmarkTest\bin\Release\netcoreapp3.1\BenchmarkDotNet.Artifacts\results mapē csv, html, md un citos formātos.



Piezīme:SimpleJob mērķa rāmja izvēle ir nepareiza un var netikt izpildīta pareiziŠādi:

Neizdevās izveidot paralēli, pārejot uz secīgu būvēšanu


Resursu:Hipersaites pieteikšanās ir redzama.




Iepriekšējo:Ārpus salīdzinājuma risinājums kļūdai "Šī autorizācijas atslēga ir atsaukta"
Nākamo:Java izsaukumi uz C# tīmekļa pakalpojuma serveri neatpazīst HTTP galvenes SOAPAction vērtību
 Saimnieks| Publicēts 31.03.2022 15:56:47 |
1. Vidējā translācija: vidējais, parasti attiecas uz vidējo aritmētisko vai ģeometrisko vidējo.

Stāstījums: saskaitiet visas vērtības secību kopā un daliet ar kopējo skaitli, kas ir vidējais.

2. Mediānas tulkojums: starpvērtība.

Stāstījums: sakārtojiet secību kopu augošā secībā un pēc tam izmantojiet vidējo vērtību, kas ir vidējā vērtība.
 Saimnieks| Publicēts 25.05.2023 20:13:33 |
.NET/C# izmanto Span, lai apstrādātu virknes ar augstu veiktspēju
https://www.itsvse.com/thread-10596-1-1.html
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com