In dem PHP-Handbuch gibt es einen Kommentar zu gzdeflate sagen:PHP: Ist Gzdeflate über mehrere Maschinen sicher?
gzcompress erzeugt Daten länger, weil es Informationen über die Codierung auf die Saite einbettet. Wenn Sie Daten komprimieren, die immer nur auf einer Maschine behandelt werden, brauchen Sie sich keine Sorgen darüber, welche dieser Funktionen Sie verwenden. Wenn Sie jedoch Daten, die mit diesen Funktionen komprimiert wurden, an eine andere Maschine weitergeben, sollten Sie gzcompress verwenden.
und dann
50000 Wiederholungen auf verschiedenen Inhalte ausgeführt wird, fand ich, dass gzdeflate() und gzcompress(), die beide gleich schnell durchgeführt, unabhängig Inhalt und Kompression, aber gzinflate() war immer über doppelt so schnell wie gzuncompress().
Für meinen Zweck archiviere ich Daten auf einer Maschine für zukünftige Verwendung. Die Daten werden oft gelesen, aber nur einmal geschrieben. Theoretisch wird es eines Tages auf eine andere Maschine verschoben werden, wenn ich irgendwann den Server wechsele, aber das sind ein paar Jahre später.
Ist es sicher für mich, gzdeflate und gzinflate im Gegensatz zu gzcompress und gzuncompress zu verwenden?
Mein Denken ist wie folgt: Gzinflate ist schneller und das wird dem Server sehr helfen, da es viele Leseanforderungen gibt. Wenn ich irgendwann in der Zukunft die Datei nicht lesen kann, sollte ich in der Lage sein, herauszufinden, wie man die Datei dekomprimiert und erneut komprimiert, oder? Es ist nicht so, dass das Gzinflat eines Tages auf magische Weise nicht funktionieren wird, wie der erste Kommentar zu sagen scheint. Selbst wenn ich einen Header von 6 Byte verpasse, bin ich mir sicher, dass es irgendwie erweiterbar sein wird.
Gedanken?
UPDATE - Benchmark
10.000 Iterationen jeweils:
gzdeflate took 19.158888816833 seconds and size 18521
gzinflate took 1.4803981781006 seconds
gzcompress took 19.376484870911 seconds and size 18527
gzuncompress took 1.6339199542999 seconds
gzencode took 20.015944004059 seconds and size 18539
gzdecodetook 1.8822891712189 seconds
Vielen Dank für Ihre Antwort. Das hilft mir sehr. Bitte denken Sie auch daran, Ihre Antwort in der php.net Dokumentation zu veröffentlichen. – Alasdair