dedlfix: Seiten zu langsam - umorientieren auf Objekte ?

Beitrag lesen

Tach!

Die Durchlaufzeiten der PHP-Programme werden immer größer. Es liegt vermutlich an den unzähligen parallelen Aufrufen von Bots.

Vermutungen helfen bei real existierenden Problemen nur selten. Vor allem dann nicht, wenn man sie nicht durch Analysen des Systems (hier der Logfiles) auf Richtigkeit kontrolliert. Jeder Optimierungsversuch muss mit Messungen unter realistischen Bedingungen vorher und nachher auf Erfolg geprüft werden. Das ist kein Theman, das man mal einfach so angehen kann und auch keins, dass umfassend in einem Forum gelöst werden kann.

Bisher ermiittle ich die Daten auf dieser Seite [...] bei jedem Aufruf frisch aus der Datenbank. Das wäre aber nicht nötig.
So, nun wie? Ich denke daran, eine CSV-Datei anzulegen mit den heutigen Events.

Ach, hast du bereits durch Messungen herausgefunden, dass der Flaschenhals die Datenbank ist? Hast du bei der den Query-Cache ausgeschaltet oder sendest du jedes Mal unterschiedliche Anfragen, so dass dieser nicht genutzt werden kann? Hast du ausgeschlossen, dass Indexe nicht passend zur Abfrage gesetzt sind und damit nicht verwendet werden können?

Im Programm kurz fragen, ob die Datei vorhanden und vom heutigen Tag ist. Wenn ja, kein DB-Zugriff, sondern die Datei nehmen. Besser noch als aufbereiteter HTML-Baustein.

Fertig generiertes HTML ist schon eher ein Punkt, der Rechenzeit spart. Auch das musst du mal messen.

Ich habe bisher keine Objekte. Was genau ist eigentlich ein Objekt? Können die heutigen Termine ein Objekt sein, das ich ins PHP-Programm einbinde? Und wo werden die Daten dieses Objekts gespeichert?
Oder ist es "nur" so, dass ein Objekt mit Programmende stirbt?

Objekte sind auch nur eine andere Form von Variablen. Sie sind genauso vergänglich wie String-, Integer- oder Array-Variablen. Eventuell kommst du, was die Performance angeht, vom Regen in die Traufe, besonders wenn du noch gar keine Ahnung darüber hast. Objektorientiert ist eine Programmierphilosophie, vorwiegend um den Code besser strukturieren zu können.

Ich weiss auch noch nicht recht, wie ich Bot-Zugriffe und von Menschen verursachte Zugriffe unterscheiden kann. Wenn ein Mensch Brunsbüttel +32 km sehen will, soll er das bekommen. Aber alle Bots haben gefälligst mit dem Standard 20 km zurechtzukommen. Und solche Daten haben auch einige Stunden Gültigkeit.

Ein Bot, der was anderes zu sehen bekommt als deine Besucher, kann das als Betrug werten. Über die Google-Webmaster-Tools kannst du aber angeben, welche Kombinationen von Queryparametern nicht indexiert werden sollen. Wenn du mit dem Google-Bot arbeiten möchtest und nicht gegen ihn, solltest du die von Google bereitgestellten Informationen kennen und berücksichtigen.

dedlfix.