Schneller String Vergleich von Strings mit exakter Länge in C

8

Hat jemand eine Idee, wie der schnellste Weg eines Stringvergleichs für Strings mit genau 6 Zeichen aussehen wird?

Meine Idee ist folgende:

%Vor%     
J_Ailu 28.01.2013, 14:22
quelle

2 Antworten

9

Dies ist ein nicht definiertes Verhalten: Sie lesen nach dem letzten gültigen Byte einer 6-stelligen Zeichenfolge. Nur sieben, nicht acht Bytes sind OK zum Lesen. Außerdem spielt die Byte-Reihenfolge eine Rolle: Sie benötigen möglicherweise 0xffffffffffff0000 auf einigen Architekturen.

Wenn Sie die Länge Ihrer Zeichenfolge kennen, verwenden Sie memcmp :

%Vor%

Die Wahrscheinlichkeit ist groß, dass Ihr Optimierer dies in eine CPU umwandelt, die für einen schnellstmöglichen Vergleich auf Ihrer Plattform geeignet ist.

    
dasblinkenlight 28.01.2013 14:28
quelle
-2

Was denkst du über xor?

return! (s1ui64 ^ s2ui64);

Aber ich bin mir nicht sicher, ob es wirklich schneller ist, aber zumindest kürzer.

    
zen 28.01.2013 14:27
quelle

Tags und Links