Als «performance» getaggte Fragen

Bei Fragen zur Messung oder Verbesserung der Code- und Anwendungseffizienz.

2
Warum ist es schneller zu überprüfen, ob das Wörterbuch den Schlüssel enthält, als die Ausnahme abzufangen, falls dies nicht der Fall ist?
Stellen Sie sich den Code vor: public class obj { // elided } public static Dictionary<string, obj> dict = new Dictionary<string, obj>(); Methode 1 public static obj FromDict1(string name) { if (dict.ContainsKey(name)) { return dict[name]; } return null; } Methode 2 public static obj FromDict2(string name) { try { return …

2
Warum ist die Verarbeitung eines sortierten Arrays langsamer als die eines unsortierten Arrays?
Ich habe eine Liste von 500000 zufällig generierten Tuple<long,long,string>Objekten, für die ich eine einfache "Zwischen" -Suche durchführe: var data = new List<Tuple<long,long,string>>(500000); ... var cnt = data.Count(t => t.Item1 <= x && t.Item2 >= x); Wenn ich mein zufälliges Array generiere und nach 100 zufällig generierten Werten von suche x, …

12
Beeinträchtigt die Verwendung von 'var' die Leistung?
Früher habe ich eine Frage gestellt, warum ich sehe, dass so viele Beispiele das varSchlüsselwort verwenden, und die Antwort erhalten, dass es zwar nur für anonyme Typen erforderlich ist, aber dennoch verwendet wird, um das Schreiben von Code "schneller" / einfacher und "nur weil" zu machen. Im Anschluss an diesen …
230 c#  performance  variables  var 

2
Warum gibt es große Auswirkungen auf die Leistung, wenn ein Array mit 240 oder mehr Elementen durchlaufen wird?
Beim Ausführen einer Summenschleife über ein Array in Rust habe ich einen enormen Leistungsabfall festgestellt, wenn CAPACITY> = 240. CAPACITY= 239 etwa 80-mal schneller ist. Gibt es eine spezielle Kompilierungsoptimierung, die Rust für "kurze" Arrays durchführt? Zusammengestellt mit rustc -C opt-level=3. use std::time::Instant; const CAPACITY: usize = 240; const IN_LOOPS: …


30
Rekursion oder Iteration?
Gibt es einen Leistungseinbruch, wenn wir in Algorithmen, in denen beide denselben Zweck erfüllen können, eine Schleife anstelle einer Rekursion verwenden oder umgekehrt? Beispiel: Überprüfen Sie, ob die angegebene Zeichenfolge ein Palindrom ist. Ich habe viele Programmierer gesehen, die Rekursion als Mittel verwendeten, um zu zeigen, wann ein einfacher Iterationsalgorithmus …


4
Warum würde die Einführung nutzloser MOV-Anweisungen eine enge Schleife in der x86_64-Assembly beschleunigen?
Hintergrund: Beim Optimieren von Pascal- Code mit eingebetteter Assemblersprache bemerkte ich eine unnötige MOVAnweisung und entfernte sie. Zu meiner Überraschung wurde mein Programm durch das Entfernen der nicht erforderlichen Anweisungen langsamer . Ich fand heraus, dass das Hinzufügen beliebiger, nutzloser MOVAnweisungen die Leistung noch weiter steigerte . Der Effekt ist …


3
Warum ist das Transponieren einer Matrix von 512 x 512 viel langsamer als das Transponieren einer Matrix von 513 x 513?
Nach einigen Experimenten mit quadratischen Matrizen unterschiedlicher Größe wurde ein Muster erstellt. Das Transponieren einer Größenmatrix 2^nist immer langsamer als das Transponieren einer Größenmatrix2^n+1 . Für kleine Werte vonn ist der Unterschied nicht groß. Große Unterschiede treten jedoch bei einem Wert von 512 auf. (Zumindest für mich) Haftungsausschluss: Ich weiß, …

12
Wie kompiliert Go so schnell?
Ich habe auf der Go-Website gegoogelt und gestöbert, aber ich kann anscheinend keine Erklärung für die außergewöhnlichen Bauzeiten von Go finden. Sind sie Produkte der Sprachfunktionen (oder deren Fehlen), ein hochoptimierter Compiler oder etwas anderes? Ich versuche nicht, Go zu fördern. Ich bin nur Neugierig.


24
String vs. StringBuilder
Ich verstehe den Unterschied zwischen Stringund StringBuilder( StringBuilderveränderlich), aber gibt es einen großen Leistungsunterschied zwischen den beiden? Das Programm, an dem ich arbeite, enthält viele Groß- und Kleinschreibung (500+). Ist die Verwendung StringBuildereiner besseren Wahl?
215 c#  .net  performance 

13
Sollte ich Javas String.format () verwenden, wenn die Leistung wichtig ist?
Wir müssen ständig Strings für die Protokollausgabe erstellen und so weiter. In den JDK-Versionen haben wir gelernt, wann StringBuffer(viele Anhänge, thread-sicher) und StringBuilder(viele Anhänge, nicht thread-sicher) zu verwenden sind. Was ist der Rat zur Verwendung String.format()? Ist es effizient oder müssen wir uns an die Verkettung von Einzeilern halten, bei …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.