Hallo,
ich denke ein Performance-Vorteil kann sich allein schon dadurch ergeben, dass physikalisch weniger auf die Festplatte zugegriffen werden muss, weil ja die Datenmenge die gelesen wird kleiner ist. Die Frage ist einfach nur, ob die CPU-Zeit, welche zum entpacken der Daten verwendet wird größer ist als die Zeit, die die Festplatte braucht um die Daten unkomprimiert zu lesen.
Dazu ein kleines Rechenbeispiel (korrigiert mich, wenn ich grob daneben liege):
Nehmen wir an, eine 1 Megabyte große Datei wird auf 60% komprimiert also auf 0.6 Megabyte. Nehmen wir weiter an, daß die Festplatte eine Datenmenge von 40 MB/s über den Bus schieben kann (ob moderne Festplatten ein paar MB mehr oder weniger schaffen sei mal dahingestellt, etwa in der Größenordnung sollte es sich abspielen).
Dann braucht der Rechner zum lesen der Datei etwa 0.025 Sekunden (evtl. Zugriffszeiten und Wartezeiten nicht mit eingerechnet). Zum Einlesen der 0.6 MB braucht der Rechner aber nur 0.015 Sekunden. Der Zeitunterschied beträgt also 0.01 Sekunden. Bei einem Rechner mit 1GHz Taktfrequenz vergehen in dieser Zeit 10000000 (=10 Millionen!) Takte. Das ist ne Menge Zeit um die Datei zu dekomprimieren.
Je schneller die CPU und der Arbeitsspeicher des Rechners im Vergleich zum Festplattenzugriff sind, desto größer wird der Performancegewinn.
____________________________________
grüße
Andreas
|