Optimierung einer Zeile



  • Hi,

    immer noch versuche ich möglichst schnellen Code zu schreiben, der aber in meinen Augen nicht optimal aussieht, weswegen ich auf eure Hilfe hoffe.

    Die zu optimierende Zeile ist:

    codeword  = ((matchoffset << lenbits) | (matchsize - 2)) | 0x1000000;
    

    codeword ist ein (quasi) 3 Byte Wert mit dem Aufbau:
    [1] [matchoffset] [matchlength]

    Die eins am Anfang ist immer dort. Darauf folgen genau 23 weitere Bits, die variabel verteilt werden. 'lenbits' enthält die Anzahl der Bits für 'matchsize', der Bitshift macht also quasi Platz für die matchsize indem das matchoffset an die richtige Stelle geschoben wird.

    Hoffentlich fällt euch ein schnellerer Weg ein, das codeword mit genau dem Aufbau bitweise zu bilden.

    Gruß,
    Neo



  • Die Zeile allein kann man gar nicht schneller machen, aber vielleicht geht's insgesamt, indem du dir Teile davon schon zurechtgeshiftet oder sonstwie vorbereitet aufhebst.



  • schneller geht da nimmer

    aber wahrscheinlich optimierst du da auch an der falschen stelle, die zeile sollte doch absolut nicht ins gewicht fallen(schonmal mit nem profiler drüber gelaufen?).



  • Ok, wenn ihr meint, dass die Zeile nicht weiter optimierbar ist, kann ich mich der Optimierung des restlichen Codes zuwenden. Danke 🙂



  • du kannst ja jeden tag eine zeile hier reinposten (immer neuen beitrag dafür aufmachen) und wir gucken ob man sie optimieren kann.



  • Ist das jetzt sarkastisch gemeinte Kritik daran, dass ich (viele?) Threads, in denen es um Optimierung geht, eröffne, oder meinst du das ernst?

    Ist mir irgendwie nicht auf den ersten Blick ersichtlich 😉

    Im letzten Fall: Einzelne Zeilen habe ich keine mehr, aber Schleifen etc. mehr als genug 😉



  • Lol.

    Du kannst nur optimieren in dem du dir den ganzen Code zu Brust nimmst und dann siehst wie etwas zusammenhängt.
    Ein Motor ist nicht nur leistungsfähig weil die Einzelkomponenten optimiert sind, sondern weil sie auch aufeinander abgestimmt sind.

    Es war also definitiv nicht ernst gemeint mit .. eine Zeile jeden Tag.

    PS: Eine Zeile jede Woche nutzt auch nichts 🕶



  • ich persoenlich wuerd sagen solche bitschubseroptimierungen kann man auch weg lassen--wuerde mich auch nicht wundern wenn es ohne diese shifting- und binaerausdruecke sogar langsamer von statten geht als wenn man das ganze auf registergroesse zurecht stutzten wuerde.
    wobei dass bei den heutigen geschwindigkeiten (meistens) ohnehin keine rolle mehr spielt.


Anmelden zum Antworten