Ein freudestrahlendes Hai Martin!
vielleicht, ja, aber damit lassen sich auch prima Konflikte erzeugen. Beispiel:
Eintrag #0 Offset 0x0000 Länge 0x0010
Eintrag #1 Offset 0x0010 Länge 0x0030
Eintrag #2 Offset 0x0040 Länge 0x0020
Eintrag #3 Offset 0x0050 Länge 0x0010Hier belegen Eintrag #2 und Eintrag #3 teilweise denselben Bereich.
Ja, das sehe ich sofort ;-)
Ja, ne, is klar, das darf natürlich nicht passieren und mein Perlscript tut in dieser Hinsicht fehlerfrei. Mein "Adressblock" ist konsistent, auch mit den Redundanzen. Letztere verringern ein bischen die CPU beim Lesen der binary Datei, Offset und Length liegen sofort als Pärchen vor, length muss nicht erst berechnet werden.
Anstelle DWORD ists bei mir ein short, das sind dann nur 2 byte je Integer (16 Bit, ermöglicht 65536 Einträge, reicht dicke).
Halt Dich fest *G*: Genau das ist mir gestern abend kurz vor dem Einschlafen durch den Hinterkopf geschossen! Freilich, da hast Du vollkommen Recht, das ist praktisch sauknapp für eine lineare Adressierung. Es bleibt also beim DWORD.
Das Konzept ist also noch ausbaufähig bzw. zeigt noch Optimierungspotential. ;-)
Es steht!!!!! Jetzt geht die Arbeit erstmal richtig los, to Doooooo:
- Perl Modul schreiben
- Evntl. OOP, mal sehen.
Erster produktiv Einsatz wird mein CMS sein, da ists momentan so, dass zum Request einer URL ein kompletter hash mit ~70 kb in den RAM geladen wird, wobei dazu auf dem Server eine ini-Datei eingelesen wird. Mit der neuen Art, die Objekte in einer bin-Datei, wird zukünftig nur noch der Adressblock aus der Datei in den Speicher geholt und die Attribute dann aus einem FileHandle gelesen, das sind nur noch ein paar byte.
Das wird fein, Rock & Roll ;-)
Vielen Dank, schön dass Du mitgelesen hast,
was Eigenes entwickeln macht immer Spaß,
viele Grüße an Alle,
Horst Fröhlisch
Have a Cigar!