PHP Compression gzip

Programmier Experten,

wie kann man eine hohe File Kompression (gzip oder minify) erreichen?
Im Moment verwende ich htaccess zum komprimieren: SetOutputFilter DEFLATE

Dieser Code liefert aber eine maximale Kompression von 65% - 68% in gzip: http://checkgzipcompression.com/
Hingegen gibt es andere Seiten mit bis zu 78% oder 80%.
Woran liegt das?
Gibt es bessere GZIP Möglichkeiten?

Danke für Lösungen und frohe Ostern,
Minion1

Hallo!

Du das Ergebnis kritisch sehen.

Ich habe grade mal drei meiner Seiten geprüft.

Seite 1 besteht aus reinem HTML von 751Byte, das zu 426Byte geschrumpft werden kann (43%). Sie ist einfach zu klein, um sie effizient komprimieren zu können. im Grunde wird ja erst ein „Musterbuch“ mit wiederkehrenden Mustern angelegt, und dann nur noch aufgeschrieben, welches Muster wo in der Datei vorkommt. Bei so kleinen Dateien ist das Musterbuch schnell fast so groß wie die ursprüngliche Datei.

Seite 2 besteht aus 170kB reinem HTML, und lässt sich zu 60kB schrumpfen (76%). Der Inhalt besteht aus vielen Messdaten und ist sehr ungleichmäßig. Dennoch werden genügend wiederkehrende Muster für eine gute Kompression gefunden.

Seite 3 ist eine Bildergallerie mit 92kB an HTML/js/CSS-Anteil, und wird auf 6kB komprimiert (93%). Hier ist die Kompression außergewöhnlich hoch, das liegt aber daran, daß in der HTML-Datei für jedes der 160 Bilder fast die gleichen 5 Zeilen stehen. Also fast immer das gleiche Muster.

Aber die Bilder?!? Ja, die nehmen auf der dritten Seite 1672kB ein. Bilder sind schon komprimiert, mehr als 3% zusätzlich ist kaum drin. Aus 92kB+1672kB=1764kB werden damit 6kB+1622kB=1628kB, und die Mega-Kompression schrumpft unterm Strich auf insgesamt 7,7% zusammen. Und davon steht auf deiner Webseite kein Wort!

Das zeigt: Wie gut die Kompression ist, hängt davon ab, wie groß deine Dateien mit Klartext (HTML, js, css, …) sind, und wie gleichmäßig deren Inhalt ist. Und bei einer Seite mit vielen Grafiken kannst du dir hohe Kompressionsraten an den Hut stecken.


Natürlich kannst du an der Kompression schrauben. DEFLATE benutzt wohl den gleichen Algorithmus wie GZIP, berechnet danach die Prüfsumme aber anders. Dadurch DEFLATE etwas schneller, wie die Grafik zeigt:

deflategzip

(Quelle)

Nun kann man die Kompressionsstärke generell zwar auch ändern, wenn es um jedes Byte geht, erkauft sich das aber mit massiver-Rechenleistung. Wenn viel auf deiner Webseite los ist, ist die Internetleitung zwar frei, der Server läuft aber auf Vollast, und der Seitenaufbau ist dennoch zäh…

Grundsätzlich kannst du statt DEFLATE auch GZIP benutzen, ich habe dazu diese Seite gefunden: https://varvy.com/pagespeed/enable-compression.html (ist englisch, aber die grauen Kästen zeigen es so oder so.)

Vielen Dank für die geniale Erklärung. :smiley:
Ja ich hab dann auch zwei Seiten von der selben Seite verglichen wobei der unterschied fast 15% ist.
Die Ursache dafür ist das in der einen Seite bereits minimierte Files sind und GZIP weniger komprimiert.

Weiters bin ich drauf gekommen, das mich die http zu https Weiterleitung 1 Sekunde kostet ob in php oder in htaccess:
RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Kennst du vll dafür eine Lsg die weniger als 1 Sekunde benötigt?
Bis jz konnte ich noch nicht`s dafür finden. :grin: