Wie hoch ist die Leistungseinbuße beim Hinzufügen der C# Stoppuhr zu einem Objekt?C# Performance-Strafe durch Hinzufügen der Stoppuhr?
Antwort
static void Main(string[] args)
{
Worker(1); // jit Warmup
var stopWatchOfStopwatchStopwatch = System.Diagnostics.Stopwatch.StartNew();
var stopWatchOfLoop = System.Diagnostics.Stopwatch.StartNew();
Worker(100000000);
stopWatchOfLoop.Stop();
Console.WriteLine("Elapsed of inner SW: " + stopWatchOfLoop.Elapsed.ToString());
stopWatchOfStopwatchStopwatch.Stop();
Console.WriteLine("Elapsed of outer SW: " + stopWatchOfStopwatchStopwatch.Elapsed.ToString());
var stopwatchOfcompareLoop = System.Diagnostics.Stopwatch.StartNew();
Worker(100000000);
stopwatchOfcompareLoop.Stop();
Console.WriteLine("Elapsed of inner SW: " + stopWatchOfLoop.Elapsed.ToString());
}
static void Worker(int iterations)
{
for (int i = 0; i < iterations; i++)
{
Console.WriteLine("bla");
}
}
Der Unterschied ist unbedeutend - aber das ist ziemlich viel hängt Ihre Leistungsziele :)
Bitte Menge "signifikant." Bedeutet das ein paar Sekunden, Millisekunden usw.? –
Für 5000 Iterationen auf meinem Quad Core 2,83 GHZ, 8 GB RAM und x64 Win7 war es in der Größenordnung von 0,000XXX Sekunden. – Alex
nicht so bedeutend sein sollte im Zusammenhang mit der C# -Programmierung. Wenn es sich als signifikant erweist, überdenken Sie Ihre Notwendigkeit/Verwendung von Stoppuhr und C#.
Sie können immer versuchen, es selbst zu benchmarken, indem Sie es 1000 Mal implementieren, es zeitlich einteilen und dann die Ergebnisse durch 1000 dividieren. Es ist schwer genau zu sagen, wie leistungsfähig diese Funktion ist, aber Sie können es mit anderen einfachen vergleichen Operationen und sehen, wie es sich bezieht.
Ich tat dies und bekam durchschnittlich 0.258 Millisekunden, um beide mit Stopwatch.StartNew zu instanziieren und mit .ElapsedMilliseconds zu messen. Dies war im Debug-Modus, lokal, auf einer relativ schnellen Maschine. – Abacus
- 1. C# Stoppuhr - Inkonsistente Werte zurückgeben
- 2. genaue Stoppuhr von Embedded C
- 3. C++/C Arduino Stoppuhr Code überprüfen
- 4. Stoppuhr Logik
- 5. Wie erstelle ich eine Stoppuhr in C#?
- 6. iphone Stoppuhr Runde geteilt
- 7. .NET Stoppuhr-Klasseneinschränkungen
- 8. Stoppuhr nicht inkrementiert
- 9. Powershell Timer/Stoppuhr Genauigkeit
- 10. Stoppuhr. Sekunden zählen. javafx
- 11. Stoppuhr-Funktion in R
- 12. Stoppuhr in seiner Callback-Methode
- 13. Stoppuhr Programm in 8086 Assembly
- 14. High-Performance-Timer vs Stoppuhr
- 15. Stoppuhr mit nicht korrekt addierenden Haltepunkten
- 16. Stoppuhr läuft im Hintergrund mit Service
- 17. C# durch Klasseneigenschaften durchlaufen und zu bestimmten Typen hinzufügen
- 18. Wie Stoppuhr nach App Tombstone ausführen?
- 19. Hinzufügen von geraden Array-Werten durch For-Schleife. C#
- 20. VB/C# Suchen und Ersetzen durch Hinzufügen von Nummern?
- 21. Erstellen einer Stoppuhr in MS Access
- 22. C# Hinzufügen einer Anwendung beim Start durch Programm
- 23. Kann die Stoppuhr im Produktionscode verwendet werden?
- 24. Wie bekomme ich ein Stoppuhr-Programm?
- 25. IllegalAccessError zu Guave die Stoppuhr von org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus
- 26. Schlaf oder Stoppuhr nicht genau messen
- 27. Hinzufügen von zwei Vektoren, die durch Namen
- 28. Angewählte Wörter durch Verknüpfung hinzufügen
- 29. Wörterbuch merge durch Hinzufügen von Werten
- 30. Stoppuhr gibt verschiedene Ergebnisse, je nachdem, wo sich Code befindet
Warum treten bei der Installation Leistungsprobleme auf? – Oded
Sie können die Strafe mit einer Sekunden-Stoppuhr Benchmark;) –
Ich würde einen Mikro-Benchmark mit einer Stoppuhr erstellen, um es Zeit :) –