Wer sich den Quelltext einer von der CMS produzierten Seite ansieht, kann am Ende die Genererierungszeit ansehen.
Wer den PHP - Quelltext etwas umstellt, kann auch den Speicherverbrauch angezeigt bekommen, wenn der Server übr eine entsprechende Funktion verfügt.
Wer sich mit einer Stoppuhr bewaffnet und die angegebene Zeit überprüft, wird feststellen, dass da etwas nicht stimmen kann.
Und er hat Recht !!
Natürlich wird ein Coder das anders machen z.B. mit einem Profiler, aber welcher User hat das schon.
Der Grund liegt auf der Hand - im Standard wird der Tag stylesheet verwendet, ein als solches harmloses Plugin, dass aber einen Link auf die stylesheet.php setzt.
Dieses Script besorgt während der Laufzeit die CSS - Informationen und gibt sie wieder.
Das Script selbst ist aber ein eigenständiges Programm, wird als solches auch ausgeführt und hat seine eigene Verbrauchsrechnung.
Das Script benutzt weite Teile der ganzen CMS - die CMS wird also in wesentlichen Teilen nochmals aufgerufen.
Diese Verbrauchswerte müssen zu den ermittelten hinzu gerechnet werden und das gibt folgendes Bild.
Ich nehme hier mal als Beispiel die 0.12 unter Linux, von Hand teiloptimiert.
Ansicht der Home Seite nach mehrfachem Aufruf um dem Cache eine Chance zu geben.
1. Alles normal 0,171777 Sekunden, 4.583.136 B Speicher bei 10 Querys
2. Nun der Aufruf nur der stylesheet.php - der Link wurde aus der ersten Ansicht entnommen
0,094355 Sekunden, 3.540.232 B Speicher bei 5 Querys
3. Die ausgegebene CSS aus Aufruf 2 wurde als eigenständige CSS - Datei gespeichert,
der Tag {stylesheet} entfernt und an seiner Stelle ein normaler Link zur CSS gesetzt
und dann die Home - Seite aufgerufen:
0,133428 Sekunden, 4.570.440 B Speicher bei 8 Querys
Was bedeutet das ?
Die tatsächliche Ausführungszeit ist um rund 55% höher als vermutet.
Der Webserver und die Datenbank wird mit zwei statt mit einem Zugriff belastet und es werden mehr 5 zusätzliche Querys durchgeführt.
Die tatsächliche Belastung des Servers liegt bei 8.123.369 Bytes und nicht wie vermutet bei 4.583.136.
Ist ein Server auf 8 MB Scriptgrösse eingestellt kommt es nicht zum absemmeln,
da es sich hier um 2 separate, wenn auch gleichzeitige Zugriffe handelt
Wie kann man Abhilfe schaffen ?
Bei Powerweb ist das Problem intern gelöst, bei CMSMS jedoch nicht.
Zunächst einmal die CSS beschaffen !
Dazu ruft man den Link aus dem Quelltext der dargestellten Seite auf
Beispiel: http://localhost/012/stylesheet.php?templateid=6
Als Ergebnis erhält man direkt in dem Browser die CSS - Darstellung als Textdatei.
Diese speichert man z.B. als formate.css (oder wie auch immer ab).
Dann entfernt man aus dem Template die Tag stylesheet und setzt an seiner Stelle den Link
z.B.
Man muss da nur nach Bedarf die Linkadresse anpassen, je nach Namen und Speicherort (hier wurde in die Root gespeichert).
Man kann dann auch die Verknüpfung des Stylessheets zum Template löschen und erhält zur Belohnung 1 Query weniger und gewinnt zusätzlich ein wenig Zeit.
Das liebe CMS Freunde war einer von mehreren Punkten, die ich u.a. mit der ganzen Memory - Diskussion meinte.
0.12 Leistungserschleichung
Re: 0.12 Leistungserschleichung
Der Aufruf der stylesheet.php ist übrigens auch gut dazu geeignet, sich einmal die CSS von anderen CMSMS Sites anzusehen, wenn einem das Layout gefällt.
Mit folgendem Link kann man sich die CSS von CMSMS ansehen (als Beispiel):
http://www.cmsmadesimple.org/stylesheet ... mplateid=6
Mit folgendem Link kann man sich die CSS von CMSMS ansehen (als Beispiel):
http://www.cmsmadesimple.org/stylesheet ... mplateid=6
Re: 0.12 Leistungserschleichung
Etwas langsamer als die Verlinkung einer extern gehaltenen CSS Datei ist die von Powerweb vorgenommene interne Lösung, dafür aber kompatibel mit den sonstigen Systemeinheiten, was bedeutet CSS wie gewohnt bearbeitbar .
Es sind nur wenige Änderungen erforderlich um das zu ermöglichen.
Die Einbindung in ein Template erfolgt dann mit {$stylesheet} und nicht mit {stylesheet}, es ist weder die stylesheet.php noch das Plugin stylesheet erforderlich.
Im Schnitt z.T. 0,16 Sekunden bei 4,568 MB Speicherbedarf und da ist alles inklucsive.
Es sind nur wenige Änderungen erforderlich um das zu ermöglichen.
Die Einbindung in ein Template erfolgt dann mit {$stylesheet} und nicht mit {stylesheet}, es ist weder die stylesheet.php noch das Plugin stylesheet erforderlich.
Im Schnitt z.T. 0,16 Sekunden bei 4,568 MB Speicherbedarf und da ist alles inklucsive.