Christian Kruse: Daten in Baumstruktur speichern

Beitrag lesen

Hallo Andreas, hallo Michael,

Dann wird es nicht schnell. Es sei denn, Dein
Betriebssystem hasht diese komplette Struktur, hält sie
also als sortierten Baum im RAM.

Etwas 'hashen' ist aber was anderes ;) Du meinst 'cachen'?
Tatsaechlich muss ueberigens eine Verzeichnis-Struktur nicht
komplett im Speicher gehalten werden, um einen Baum zu haben.

Das wiederum hängt vom Treiber Deines Dateisystems ab
... bei Solaris war dieser Caching-Effekt sehr stark
beobachtbar.
Bei Linux wird glaube ich alles im RAM gerhalten, was man
zuletzt verwendet hat, da gibt es irgendeinen
Automatismus.

Das haengt vom verwendeten Dateisystem ab. Hoert auf von
Betriebssystemen zu reden und fangt an ueber Dateisysteme zu
reden. Auch bei Solaris gibt es verschiedene Datei-Systeme
(und auch verschiedene Versionen von Dateisystemen!), die man
einsetzen kann.

Tatsaechlich ist z. B. ext2fs nicht zwingend gecached.

So mal ganz blöd gefragt, ist das von der Performance was
ganz anders als z.B. in PHP so einen Hash(array) zu
erzeugen, die print_r() Ausgabe zu puffern und in eine
Variable und dann in eine Datei schreiben, die dann auf
einer RAMdisk speichern und dann in andere PHP-Scripte
einbinden?  (wenn Du das nachvollziehen konntest ;-))

Es gibt wesentlich sinnvollere Speicherarten fuer Hashes als
die Ausgabe von print_r. Und das Einbinden wuerde ich eh ganz
abraten, da gibt es wirklich schnellere und bessere
Speicherarten, einen Hash aufzubauen.
Aber alle Verfahren werden darauf hinauslaufen, dass sie im
guenstigsten Fall linear sind. Wenn du Pech hast, auch
quadratisch.

Gruesse,
 CK