Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 33025|Antwort: 2

[Kommunikation] .NET/C# verwendet BenchmarkDotNet, um die Code-Performance zu testen

[Link kopieren]
Veröffentlicht am 03.03.2021 15:51:12 | | | |
Anforderungen: Im Entwicklungsprozess können dieselben beiden Funktionsmethoden unsere Anforderungen erfüllen, aber aus Leistungsgründen wählen wir die beste Leistungsmethode für den Aufruf. Wie testen wir die Leistung des Codes?

Performance Benchmarking kann Programmierern helfen, die Leistung von zwei Codeschnippeln oder Methoden zu vergleichen, was einen guten Quantifizierungsstandard für Code-Neuschreiben oder Refaktorisierung bieten kann. Ohne Leistungsbenchmarks ist es schwer vorstellbar, wie man mit bloßem Auge den Unterschied in der Performance erkennen kann, wenn man Methode A zu Methode B wechselt.

BenchmarkDotNet ist eine leistungsstarke .Net-Leistungs-Benchmark-Bibliothek auf der offiziellen WebsiteDer Hyperlink-Login ist sichtbar.

Zuerst erstellen wir ein neues .NET Core 3.1-Konsolenprojekt. Der Projektname lautet: BenchmarkTest

Installiere BenchmarkDotNet mit dem Nuget-Befehl, der Code ist wie folgt:


Doppelklicken Sie auf das Projekt, um die Zielplattform des Projekts wie folgt zu verändern:


Wir testen die Leistung der Methoden TestMD5 und TestSHA1 unter den Frameworks .NET Framework 4.7.2 bzw. .NET Core 3.1.

Der Code lautet wie folgt:


Versuchen Sie, es mit folgendem Fehler auszuführen:

Validierung von Benchmarks:
Assembly BenchmarkTest, das Benchmarks definiert, ist nicht optimiert
Der Benchmark wurde ohne aktivierte Optimierung gebaut (höchstwahrscheinlich eine DEBUG-Konfiguration). Bitte baue es in RELEASE auf.
Wenn du die Benchmarks debuggen möchtest, siehe bitteDer Hyperlink-Login ist sichtbar.

Schalte das Projekt in den RELEASE-Modus umUm das Projekt erneut zu starten, wie unten gezeigt:


* Zusammenfassung *

BenchmarkDotNet=v0.12.1, OS=Windows 10.0.18363.1379 (1909/November 2018Update/19H2)
Intel Core i5-8259U CPU 2,30 GHz (Coffee Lake), 1 CPU, 8 logische und 4 physische Kerne
.NET Core SDK=5.0.103
  [Host] : .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


|   Methode |           Job |       Laufzeit |     Mean |     Fehler |    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 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 USA | 1.336 US | 1.307 US |

* Hinweise *
Ausreißer
  TestContext.TestSHA1: .NET 4.7.2 -> 1 Ausreißer wurde entfernt (5,52 US)
  TestContext.TestSHA1: .NET Core 3.1 -> 1 Ausreißer wurde entfernt (1.37 US)

* Legenden *
  Mittelwert: Arithmetischer Mittelwert aller Messungen
  Fehler: Hälfte des 99,9%-Konfidenzintervalls
  StdDev: Standardabweichung aller Messungen
  Min: Minimum
  Max: Maximum
  Median: Wert, der die obere Hälfte aller Messungen trennt (50. Perzentil)
  1 US: 1 Mikrosekunde (0,000001 Sek)

***** BenchmarkRunner: Ende *****
** Es gab noch 0 Benchmark(s) zu laufen **
Laufzeit: 00:01:14 (74 Sekunden), ausgeführte Benchmarks: 4

Globale Gesamtzeit: 00:01:20 (80,63 Sekunden), ausgeführte Benchmarks: 4
* Artefakt-Aufräumen *
Nach der Ausführung werden die Testergebnisse in unserem Projektordner \BenchmarkTest\bin\Release\netcoreapp3.1\BenchmarkDotNet.Artifacts\results in CSV-, HTML-, MD- und anderen Formaten gespeichert.



Anmerkung:Die Auswahl des SimpleJob-Zielframes ist falsch und kann nicht korrekt ausgeführt werdenFolgendermaßen:

Ich habe parallel nicht gebaut und bin auf einen sequentiellen Build umgestiegen


Betriebsmittel:Der Hyperlink-Login ist sichtbar.




Vorhergehend:Beyond Compare Lösung zum Fehler "Dieser Autorisierungsschlüssel wurde widerrufen"
Nächster:Java-Aufrufe zum C#-Webservice-Server erkennen den Wert des HTTP-Headers SOAPAction nicht
 Vermieter| Veröffentlicht am 31.03.2022 15:56:47 |
1. Mittelverschiebung: Mittelwert, bezieht sich üblicherweise auf den arithmetischen Durchschnitt oder den geometrischen Durchschnitt.

Erzählung: Addiere alle Werte in einer Menge von Sequenzen und teile durch die Gesamtzahl, die der Mittelwert ist.

2. Medianübersetzung: Zwischenwert.

Erzählung: Ordne eine Reihe von Sequenzen in aufsteigender Reihenfolge an und nimm dann den mittleren Wert, der der mittlere Wert ist.
 Vermieter| Veröffentlicht am 25.05.2023 20:13:33 |
.NET/C# verwendet Span, um Strings mit hoher Leistung zu handhaben
https://www.itsvse.com/thread-10596-1-1.html
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com