# Performance-Analyse: komischer POST-Request, Analytics, Counter



## multimolti (1. Juli 2010)

Hallo!

Ich habe in den letzten Tagen viel daran gearbeitet, meine Website etwas schneller zu machen, und u.a. das hier getan:
- FastCGI angeschaltet
- HTML, CSS und JS "minified"
- CSS und JS zu einem Script zusammengefasst
- Bilder verkleinert
- gzip Komprimierung aktiviert
- unnötige Teile + Plugins deaktiviert/ausgeblendet
Dadurch ist die Website ( http://www.multimolti.com/blog/ ) schon massiv schneller geworden, aber ein paar komische Sachen gehen immer noch ab (mit Firebug im "Netzwerk"-Modus erkannt):

1. Warum wird am Ende des Ladens immer ein POST-.Request auf die index.php ausgeführt? Ich habe keine Ahnung wo der herkommt, ist m.M.n. unnötig!
*2. Der __utm.gif-Teil von Google Analytics braucht manchmal Ewigkeiten (8-10 Sekunden) und macht die Website so gefühlt langsamer. Kann man das irgendwie optimieren?*
*3. Außerdem habe ich einen eigenen Counter, der als counter.php ganz am Ende in einem iFrame eingebunden wird. Kann man das irgendwie optimieren, dass der die Website nicht länger laden lässt? Theoretisch muss ja nur einmal kurz der HTTP-Request losgeschickt werden und dann kann man abbrechen, wird ja eh kein Inhalt geladen.*
4. Die gdstarrating.css.php ist manchmal extrem langsam, kann ich da was machen?

Wär super wenn ihr mir Tipps geben könnt, danke!

EDIT:
Wenn man fragt kommt man immer gleich danach selber auf die Lösungen, zumindest bei manchen Sachen =)
1. Aus irgendeinem Grund war im Footer eine jQuery-Anfrage drin, die aber gar nichts gebracht hat. Entfernt und POST ist weg.
4. Habe die jetzt einfach aus dem Plugin entfernt und lade die selber mit den anderen CSS zusammen minified und gzipped, klappt prima. 

Zu 3.:
*Bringt es was das statt per iFrame irgendwie als JS oder so einzubinden?*

Und 2. regt mich furchtbar auf! GRRR



Und noch eine Frage:
*Warum zeigt mir Firebug gar nicht an, dass überhaupt die HTML-Datei geladen wird? Manchmal tut er es, aber auch bei Seiten auf denen ich seit dem letzten Cache-leeren nicht war und die er daher unmöglich im Cache haben kann fehlt es manchmal.*


----------



## port29 (2. Juli 2010)

Hi,

ich habe mir mal deinen Blog angesehen. Das laden des Google Scriptes sollte eigentlich nichts an der Geschwindigkeit deiner Seite verändern. Du hast das Script ja richtigerweise schon am Ende der Seite stehen, somit wird es auch als letztes geladen, quasi wenn der User schon mit etwas anderem beschäftigt ist. 

Wieso du den Counter über ein iFrame einbindest und überhaupt ein Request auslöst, ist mir allerdings ein Rätsel. Denn du kannst die Funktionalität ja direkt in (d)ein PHP Script einbinden.

Ein Tipp am Rande: Schau dir mal nginx an, es ist ein lightweight Webserver. Ich setze ihn immer dann ein, wenn es darum geht, statische Inhalte schnell auszuliefern. Er ist allemal besser und schneller, als dein 0815 Centos-Apache Server mit Frontpage  und DAV.


----------



## multimolti (2. Juli 2010)

Danke für die Antwort!

Ja, das Google-Script wird eigentlich erst geladen wenn der Browser den restlichen Kram hat, aber mich zumindest macht es total fertig wenn sich das Logo da oben dauerhaft dreht... ich habe dann immer den Impuls nach 3 Sekunden ESC zu drücken und rege mich über die schlechte Website auf, die so lange läd -.- Aber vielleicht ist das auch nur etwas persönliches.

Das mit dem Counter stimmt, aber erstens möchte ich nicht im WP-Sourcecode rumpfuschen (habe ich eh schon zu stark gemacht) und auch kein Plugin dafür schreiben, und der ist auch recht ineffizient und daher langsam, also ist es schon gut wenn die Seite an sich nicht davon abhängt. Ich würde ihn nur vielleicht gerne so einbauen dass der Request sofort gekillt wird oder so =)

Und nginx klingt gut, aber ich glaube nicht dass ich den auf meinem Server installieren darf, habe zwar SSH-Zugriff aber ohne sonderlich viele Rechte.


----------



## port29 (2. Juli 2010)

multimolti hat gesagt.:


> Ja, das Google-Script wird eigentlich erst geladen wenn der Browser den restlichen Kram hat, aber mich zumindest macht es total fertig wenn sich das Logo da oben dauerhaft dreht... ich habe dann immer den Impuls nach 3 Sekunden ESC zu drücken und rege mich über die schlechte Website auf, die so lange läd -.- Aber vielleicht ist das auch nur etwas persönliches.



Ich fand es von der Geschwindigkeit her ganz Okay, was mich aber genervt hat, war das langsame Laden der Bilder. Hier merkt man schon, dass der Apache eigentlich nicht wirklich dafür geschaffen ist. Deshalb würde ich auch bei stark frequentierten Seiten varnish oder ähnliche Konstrukte davor kloppen. 



multimolti hat gesagt.:


> Das mit dem Counter stimmt, aber erstens möchte ich nicht im WP-Sourcecode rumpfuschen (habe ich eh schon zu stark gemacht) und auch kein Plugin dafür schreiben, und der ist auch recht ineffizient und daher langsam, also ist es schon gut wenn die Seite an sich nicht davon abhängt. Ich würde ihn nur vielleicht gerne so einbauen dass der Request sofort gekillt wird oder so =)



Worin liegt denn der Unterschied, ob du ein Bild einbindest oder PHP Quelltexte ausführen lässt. Etwas musst du einfügen, da finde ich es egal ob es ein IFrame oder ein PHP Code ist. Im Übrigen finde ich die Lösung mit dem IFrame tatsächlich nicht die sauberste. Denn hierfür lassen sich auch Bilder benutzen. Mit einem 0815 <img> Tag kannst du beim Server nach einem Bild fragen. Doch statt eines Bildes trägst du unter src dein Script ein. Das Script kannst du entweder so lassen oder im Script oben den Header den richtigen Mime setzen und mit readfile() ein 1 Pixel großes, transparentes Bild zurückliefern.



multimolti hat gesagt.:


> Und nginx klingt gut, aber ich glaube nicht dass ich den auf meinem Server installieren darf, habe zwar SSH-Zugriff aber ohne sonderlich viele Rechte.



Managed Server? Das ist immer das Problem an solchen Maschinen. Man hat irgendwie nichts halbes und auch nichts ganzes. Leider kann man da auch wenig optimieren.


----------



## multimolti (2. Juli 2010)

port29 hat gesagt.:


> Ich fand es von der Geschwindigkeit her ganz Okay, was mich aber genervt hat, war das langsame Laden der Bilder. Hier merkt man schon, dass der Apache eigentlich nicht wirklich dafür geschaffen ist. Deshalb würde ich auch bei stark frequentierten Seiten varnish oder ähnliche Konstrukte davor kloppen.


Du weißt nicht wie das vorher war. Jetzt habe ich die Bilder ja schon auf static.multimolti.com ausgelagert, sodass der Browser die wenigstens parallel läd, vorher hat eine Seite ernsthaft bis zu 18 Sekunden gebraucht bevor man sie benutzen konnte -.-



port29 hat gesagt.:


> Worin liegt denn der Unterschied, ob du ein Bild einbindest oder PHP Quelltexte ausführen lässt. Etwas musst du einfügen, da finde ich es egal ob es ein IFrame oder ein PHP Code ist. Im Übrigen finde ich die Lösung mit dem IFrame tatsächlich nicht die sauberste. Denn hierfür lassen sich auch Bilder benutzen. Mit einem 0815 <img> Tag kannst du beim Server nach einem Bild fragen. Doch statt eines Bildes trägst du unter src dein Script ein. Das Script kannst du entweder so lassen oder im Script oben den Header den richtigen Mime setzen und mit readfile() ein 1 Pixel großes, transparentes Bild zurückliefern.


Genau nach so einer Lösung habe ich ja gefragt, nur bezweifle ich dass das wirkliche Vorteile bringt. Ich kann momentan nicht erkennen, dass es schneller wird weil man ein Bild, JS oder leeres HTML läd. Und eben direkt integrieren in das WP-PHP-Script möchte ich nicht.



port29 hat gesagt.:


> Managed Server? Das ist immer das Problem an solchen Maschinen. Man hat irgendwie nichts halbes und auch nichts ganzes. Leider kann man da auch wenig optimieren.


Ich fand es schon sehr erstaunlich dass ich so tolle Sachen wie SSH-Zugriff und FastCGI habe, aber zu viel darf man für 3.95$/Monat auch nicht verlangen =)


----------



## port29 (2. Juli 2010)

multimolti hat gesagt.:


> Genau nach so einer Lösung habe ich ja gefragt, nur bezweifle ich dass das wirkliche Vorteile bringt. Ich kann momentan nicht erkennen, dass es schneller wird weil man ein Bild, JS oder leeres HTML läd. Und eben direkt integrieren in das WP-PHP-Script möchte ich nicht.



http://www.stevesouders.com/blog/2009/06/03/using-iframes-sparingly/

Hier siehst du, dass ein IFrame erheblich länger braucht, als andere Elemente. 



multimolti hat gesagt.:


> Ich fand es schon sehr erstaunlich dass ich so tolle Sachen wie SSH-Zugriff und FastCGI habe, aber zu viel darf man für 3.95$/Monat auch nicht verlangen =)



Also für das Geld kann man nicht meckern.


----------



## multimolti (2. Juli 2010)

Gut, ist jetzt als IMG eingebaut. Dann hat sich alles geklärt glaube ich.


----------

