CnC: Cache&Compress für CMSimple_XH

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Post Reply
cmss
Posts: 244
Joined: Mon Jan 02, 2017 6:15 pm

Re: CnC: Cache&Compress für CMSimple_XH

Post by cmss » Thu Nov 23, 2017 7:08 pm

Ich habe übrigens einen weiteren Ansatz gefunden, aus dem man auch ein ähnliches Plugin machen könnte : CSS-JS-Booster

http://www.peterkroener.de/der-css-js-b ... leunigung/
Der Author lädt sogar ein ein Plugin zu erstellen.

https://github.com/Schepp/CSS-JS-Booster (leider nur für php 5 geprüft)

Der soll das letzte bisschen herauskitzeln - Es gibt zum Testen die Browser-Erweiterung github.com/marcelduran/yslow/ Yslow

(Bilder kann man beispielsweise mit

echo 'background-image: url(data:image/gif;base64,'.base64_encode(file_get_contents('beispiel.gif')).');'; (Bildpfad hinzufügen!) laden.)

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by frase » Sun Dec 17, 2017 12:26 pm

Das Ding läuft jetzt schon eine Weile bei mir in einigen Seiten -> sehr gut!
Probleme konnte ich bisher nicht ausfindig machen -> sehr gut!

Evtl. könnte man bei der CSS-Minifizierung noch einige Bytes einsparen, wenn die eigenartigen Zeilenschaltungen vermieden würden.
Ich kann nicht herausfinden, nach welchem Schema diese gesetzt werden - bzw. was ursächlich dafür ist.
Allerdings kann ich mir gut vorstellen, dass der Algorithmus dafür ziemlich kompliziert ist :shock:

Hier mal ein Beispiel einer minifizierten CSS-Datei. An den roten Punkten könnte es getrost "weitergehen" ohne Zeilenschaltung.
cnc.png
You do not have the required permissions to view the files attached to this post.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by cmb » Sun Dec 17, 2017 12:58 pm

frase wrote:Evtl. könnte man bei der CSS-Minifizierung noch einige Bytes einsparen, wenn die eigenartigen Zeilenschaltungen vermieden würden.
Ich kann nicht herausfinden, nach welchem Schema diese gesetzt werden - bzw. was ursächlich dafür ist.
Allerdings kann ich mir gut vorstellen, dass der Algorithmus dafür ziemlich kompliziert ist :shock:

Hier mal ein Beispiel einer minifizierten CSS-Datei. An den roten Punkten könnte es getrost "weitergehen" ohne Zeilenschaltung.
[…]
Hm, ob da ein Space- oder ein Newline-Zeichen steht, ist doch eigentlich egal – beides benötigt ein Byte. Okay, bei der anschließenden Komprimierung könnte, wenn immer nur Leerzeichen verwendet würden, vielleicht noch das ein oder andere Byte eingespart werden. Aber, für eine handvoll Bytes …

Viel relevanter ist die JavaScript-Minifizierung. CnC verwendet wohl einen eher einfach gestrickten Minifier; da bietet es sich an, JS-Skripte mit einem mächtigeren Tool wie Closure Compiler, UglifyJS o.ä. zu minifizieren und entsprechend auszuliefern, was ich allen Pluginentwicklern und Templatedesignern empfehlen würde. Beispiel twocents.js:
  • Original: 12483 Bytes
  • CnC: 1983 Bytes (6924 Bytes unkomprimiert)
  • Closure Compiler & CnC: 1659 Bytes (4993 Bytes unkomprimiert)
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by frase » Sun Dec 17, 2017 1:05 pm

Jajajaja, ich wollte eigentlich das Plugin loben und nicht zerreißen ;-)

Weil optisch ein großer Unterschied zwischen LF und Leerzeichen ist, dachte ich Unwissender, dass da mehr bei rüberkommt.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by cmb » Sun Dec 17, 2017 1:44 pm

frase wrote:Weil optisch ein großer Unterschied zwischen LF und Leerzeichen ist, dachte ich Unwissender, dass da mehr bei rüberkommt.
Eigentlich ist es noch extremer: einfache Minifizierer bringen nicht viel, falls keine Kommentare vorhanden sind, und sowieso komprimiert wird. Beispiel: ein xhstyles.css aus einer Installation mit einigen zusätzlichen Plugins:
  • Original: 33527 Bytes – komprimiert 7196 Bytes
  • CnC: 23417 Bytes – komprimiert 5309 Bytes
  • Nach entfernen aller Kommentare (triviale RegExp): 29315 Bytes - komprimiert 5773 Bytes
Aber okay, wie sieht es aus, wenn man die Newlines durch Leerzeichen ersetzt:
  • Minifiziert: 23417 Bytes – komprimiert 5309 Bytes
  • Newline → Space: 23417 Bytes – komprimiert 5213 Bytes
Schon etwas mehr als ich gedacht hätte.
frase wrote:Jajajaja, ich wollte eigentlich das Plugin loben und nicht zerreißen ;-)
Auch mIr liegt es fern, CnC zu zerreißen – im Gegenteil: ich finde es sehr sinnvoll. Ich wollte nur betonen, dass man durchaus noch mehr einsparen kann, wenn man zusätzlich andere Tools nutzt. Und vermutlich kann man bezüglich JS noch mehr einsparen, wenn man Skript-Ressourcen verwendet anstatt längere Scripte direkt im HTML auszugeben – diesbezüglich könnte beispielsweise beim TinyMCE noch nachgebessert werden.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by frase » Sun Dec 17, 2017 1:59 pm

Wie beinahe immer, hast du recht.
cmb wrote: ... diesbezüglich könnte beispielsweise beim TinyMCE noch nachgebessert werden.
Na ja, ich denke (meine private Meinung), dass es im Adminmodus ziemlich egal ist, dass man evtl. 1 bis 2 Sekunden länger auf den Tiny warten muss.
Auf Frontend-Seiten sieht es da schon anders aus.
Da stört es mich schon eher, dass der Tiny bei Aufruf (bei Internetverbindung) manchmal irgendwohin schaltet (cdn?) und ich dann wirklich 3-7 Sekunden oder länger warten muss. Das passiert allerdings nur sehr selten. Ist man offline - dann gar nicht.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by cmb » Thu Jan 25, 2018 2:48 pm

frase wrote:
Sun Dec 17, 2017 1:59 pm
Da stört es mich schon eher, dass der Tiny bei Aufruf (bei Internetverbindung) manchmal irgendwohin schaltet (cdn?) und ich dann wirklich 3-7 Sekunden oder länger warten muss. Das passiert allerdings nur sehr selten. Ist man offline - dann gar nicht.
Ist das wirklich der TinyMCE? Ich habe gelegentlich auffällige Verzögerungen direkt nach dem Login – die dürften allerdings durch hi_updatecheck verursacht sein. Konkret bezüglich TinyMCE ist mir allerdings noch nichts aufgefallen.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by frase » Thu Jan 25, 2018 3:42 pm

cmb wrote:
Thu Jan 25, 2018 2:48 pm
Ist das wirklich der TinyMCE?
Schlag mich.
Ich weiß es nicht genau. Ist ja auch schon länger as 5 Minuten her. ;-)

Ich bilde mir ein, in der Statuszeile (FF) so etwas ähnliches gelesen zu haben, wie
TLS handshake ... cdn ...
Diese Aussage ist allerdings mit Vorsicht zu genießen (nur dunkle Erinnerung).
Ich werde zukünftig mal näher darauf achten und berichten.

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by frase » Thu Jan 25, 2018 3:50 pm

jetzt habe ich nochmal genauer hingeschaut.
Also:
Wie bereits erwähnt passiert das nur selten.
Beim jetzigen Test ging es schnell - aber in der Statuszeile konnte ich gerade noch eine Adresse erkennen in der "cloudflare" oder so ähnlich vorkam.
Da erst danach der Tiny erscheint, vermute ich halt, dass es damit zusammenhängt.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by cmb » Thu Jan 25, 2018 4:13 pm

frase wrote:
Thu Jan 25, 2018 3:50 pm
Wie bereits erwähnt passiert das nur selten.
Beim jetzigen Test ging es schnell - aber in der Statuszeile konnte ich gerade noch eine Adresse erkennen in der "cloudflare" oder so ähnlich vorkam.
Da erst danach der Tiny erscheint, vermute ich halt, dass es damit zusammenhängt.
Kann ich mit einem sauberen XH 1.7.2 nicht reproduzieren. Im Netzwerktab werden nur lokale Dateien angezeigt, und auch eine Volltextsuche nach "cloudfare" liefert kein Ergebnis. Es ist allerdings möglich, ein CDN explizit zu konfigurieren ($plugin_cf['tinymce4']['CDN']) – das ist aber bei dir vermutlich nicht der Fall, oder?
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply