micro-optimization

Mikrooptimierung ist der Prozess der sorgfältigen Feinabstimmung kleiner Codeabschnitte, um einen vermeintlichen Mangel in einigen Aspekten des Betriebs zu beheben (übermäßiger Speicherverbrauch, schlechte Leistung usw.).
4
Antworten

Überprüfen Sie das Vorhandensein eines HashMap-Schlüssels

In Java muss eine HashMap vollständig mit Daten eines solchen Formulars gefüllt sein: %Vor% Was ist schneller, wenn Sie die Existenz eines zufälligen Schlüssels überprüfen, sagen Sie 100: %Vor% oder %Vor% ? Die Frage ist aus der Si...
09.02.2013, 13:01
3
Antworten

Welche Integer-Operationen haben in Rust alternative Methoden?

Beim Schreiben von Integer-Funktionen in Rust, die millionenfach ausgeführt werden (Pixelverarbeitung), ist es sinnvoll, Operationen mit der höchsten Leistung zu verwenden - ähnlich wie in C / C ++. Während das Referenzhandbuch Änderungen im...
12.12.2016, 13:25
5
Antworten

Branch auf?: operator?

Führt der Operator ? : für einen typischen modernen Compiler auf moderner Hardware zu einer Verzweigung, die sich auf die Befehlspipeline auswirkt? Mit anderen Worten, was schneller ist, indem beide Fälle aufgerufen werden, um eine möglich...
19.08.2011, 21:45
1
Antwort

Warum ist '-1 * x' schneller als '-x' und warum?

Mit diesem Code: %Vor% Ich bekomme dieses Ergebnis wieder in ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux] : %Vor% Das sieht widersinnig aus, denn wenn ich rate, würde ich auf "-x" und nicht "-1 * x" setzen, um schneller zu...
11.12.2015, 12:49
6
Antworten

Schnelle Suche nach einigen Nibbles in zwei Ints bei gleichem Offset (C, Mikrooptimierung)

Meine Aufgabe ist es zu prüfen (& gt; Billionen-Überprüfungen), enthalten zwei int irgendwelche vordefinierten Nibble-Paare (erstes Paar 0x2 0x7; zweites 0xd 0x8). Zum Beispiel: %Vor% Also, für dieses Beispiel markiere ich zwei Offsets mit b...
03.03.2011, 23:14
1
Antwort

Ist vxorps-Zeroing auf AMD Jaguar / Bulldozer / Zen schneller mit xmm Registern als ymm?

AMD-CPUs verarbeiten 256b AVX-Befehle, indem sie in zwei 128-Bit-Operationen dekodieren. z.B. vaddps ymm0, ymm1,ymm1 auf AMD Steamroller dekodiert zu 2 Makro-Operationen, mit dem halben Durchsatz von vaddps xmm0, xmm1,xmm1 . XOR-Nullste...
01.05.2017, 01:53
3
Antworten

Unterschied zwischen "oder eax, eax" und "test eax, eax" [duplizieren]

Was ist der Unterschied zwischen or eax,eax und test eax,eax ? Ich habe gesehen, dass verschiedene Compiler beide für den gleichen Vergleich produzieren und soweit die Dokumentation geht, machen sie genau das Gleiche, also frage ich mich,...
16.05.2014, 03:05
2
Antworten

Vollständige Nutzung von Pipelines am Kaby Lake

(Weitere Informationen zur Code-Review Fragen ) des Kontexts dieser Schleife.) Umgebung: Windows 7 x64 VS 2017 Community Targeting x64-Code auf Intel i7700k (Kaby See) Ich schreibe nicht viel Assembler-Code, und wenn ich es tue,...
16.07.2017, 05:44
2
Antworten

Gibt es Leistungsunterschiede bei der Verwendung von int im Vergleich zu int8_t

Meine Hauptfrage ist Gibt es einen Unterschied zwischen int und int8_t für die Ausführungszeit ? In einem Framework, an dem ich gerade arbeite, lese ich oft Code, bei dem einige Parameter als int8_t in function gesetzt sind, weil "dieser...
04.02.2015, 09:03
1
Antwort

Ist es nützlich, VZEROUPPER zu verwenden, wenn Ihre Programmbibliotheken keine SSE-Anweisungen enthalten?

Ich verstehe, dass es wichtig ist, VZEROUPPER zu verwenden, wenn Sie SSE- und AVX-Code mischen, aber was ist, wenn ich AVX (und gewöhnlichen x86-64-Code) ohne irgendwelche Legacy-SSE-Anweisungen verwende? Wenn ich niemals einen einzelnen S...
27.02.2018, 23:27