Als «micro-optimization» getaggte Fragen

Mikrooptimierung ist der Prozess der sorgfältigen Optimierung kleiner Codeabschnitte, um einen wahrgenommenen Mangel in einem bestimmten Aspekt des Betriebs (übermäßige Speichernutzung, schlechte Leistung usw.) zu beheben.


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 …



3
Warum verbringt meine Anwendung 24% ihres Lebens damit, eine Nullprüfung durchzuführen?
Ich habe einen leistungskritischen binären Entscheidungsbaum und möchte diese Frage auf eine einzelne Codezeile konzentrieren. Der Code für den Binärbaum-Iterator ist unten mit den Ergebnissen der laufenden Leistungsanalyse aufgeführt. public ScTreeNode GetNodeForState(int rootIndex, float[] inputs) { 0.2% ScTreeNode node = RootNodes[rootIndex].TreeNode; 24.6% while (node.BranchData != null) { 0.2% BranchNodeData b …


4
Was ist schneller: in_array oder isset? [geschlossen]
Diese Frage passt derzeit nicht zu unserem Q & A-Format. Wir erwarten, dass die Antworten durch Fakten, Referenzen oder Fachwissen gestützt werden, aber diese Frage wird wahrscheinlich zu Debatten, Argumenten, Umfragen oder erweiterten Diskussionen führen. Wenn Sie der Meinung sind, dass diese Frage verbessert und möglicherweise erneut geöffnet werden kann, …

9
Wann, wenn überhaupt, ist das Abrollen der Schleife noch sinnvoll?
Ich habe versucht, extrem leistungskritischen Code (einen schnellen Sortieralgorithmus, der in einer Monte-Carlo-Simulation millionenfach aufgerufen wird) durch Abrollen der Schleife zu optimieren. Hier ist die innere Schleife, die ich zu beschleunigen versuche: // Search for elements to swap. while(myArray[++index1] < pivot) {} while(pivot < myArray[--index2]) {} Ich habe versucht, mich …

7
Der schnellste Weg, um alle nicht druckbaren Zeichen aus einem Java-String zu entfernen
Was ist der schnellste Weg, um alle nicht druckbaren Zeichen von einem Stringin Java zu entfernen? Bisher habe ich versucht, einen 138-Byte-String mit 131 Zeichen zu messen: String's replaceAll()- langsamste Methode 517009 Ergebnisse / Sek Kompilieren Sie ein Muster vor und verwenden Sie dann Matcher's replaceAll() 637836 Ergebnisse / Sek …

7
Ist es effizienter, eine Bereichsprüfung durch Casting auf uint durchzuführen, anstatt nach negativen Werten zu suchen?
Ich bin auf diesen Code im Quellcode der .NET- Liste gestoßen : // Following trick can reduce the range check by one if ((uint) index >= (uint)_size) { ThrowHelper.ThrowArgumentOutOfRangeException(); } Anscheinend ist dies effizienter (?) Als if (index < 0 || index >= _size) Ich bin neugierig auf die Gründe …

7
Gleitkommadivision gegen Gleitkommamultiplikation
Gibt es einen Leistungsgewinn (ohne Mikrooptimierung) durch Codierung? float f1 = 200f / 2 im Vergleich zu float f2 = 200f * 0.5 Ein Professor von mir hat mir vor einigen Jahren erzählt, dass Gleitkommadivisionen langsamer sind als Gleitkommamultiplikationen, ohne das Warum zu erläutern. Gilt diese Aussage für die moderne …


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.