Was bremst Seiten aus
Giovanni Rena
- php
1 Daniel1 Sven Rautenberg0 Danny0 Bio
Hallo,
ich wollte mal wissen was konkret Seiten ausbremst
LG Giovanni
Hi,
unnötiger quelltext wie z.B. ellenlange Meta-Angaben unnötige und eben sonstiger unnötiger Quellcode.
MfG
Ja, ich hab eher speziellere Dinge gemeint, dass ne BMP-Datei länger braucht bis sie geladen ist als die selbe Datei in JPG-Format ist klar, auch unnötiger Quelltext macht die Seite "unnötig langsam"! Versteht sich von selbst.
Braucht z. B. eine DB-Connection lange? Ich habe oft Funktionen wie z. B. GetNewMaxID($Tabelle, $Spalte) die die Verbindung zur DB herstellen, ne Abfrage machen und den Wert liefern, danach wird die Connection beendet.
Oft ist es auch der Fall, dass eine Funktion, 5 andere solche Funktionen aufruf, d. h. es wird 5mal ne Connection zur DB hergestellt und geschlossen. Das braucht Zeit.
Der Vorteil ist aber, ich kann diese Funktionen im ganzen Programm (Homepage) einsetzen da diese unabähngig sind.
Gruß Giovanni
Braucht z. B. eine DB-Connection lange? Ich habe oft Funktionen wie z. B. GetNewMaxID($Tabelle, $Spalte) die die Verbindung zur DB herstellen, ne
Abfrage machen und den Wert liefern, danach wird die Connection beendet.
Oft ist es auch der Fall, dass eine Funktion, 5 andere solche Funktionen aufruf, d. h. es wird 5mal ne Connection zur DB hergestellt und geschlossen. Das braucht Zeit.
Der Vorteil ist aber, ich kann diese Funktionen im ganzen Programm (Homepage) einsetzen da diese unabähngig sind.
Wieso machst du sowas?
Einmal die Verbindung am Anfang des Scripts herstellen und am ende des Scripts beenden. Macht den Code wesentlich übersichtlicher, dadurch auch kürzer und natürlich schneller. Ausserdem kostet das Speicher.
So kannst du auch alle funktionen auf der kompletten homepage nutzen.
Sorry, aber sowas hab ich ja noch nie gehört ....
BTW, es kann auch vorkommen das du an die grenze der Maximalen DB Verbindungen eines Prozesses kommst.
MfG
Okay, ich kanns ja mal probieren. Danke für den Tipp.
Hi,
Ja, ich hab eher speziellere Dinge gemeint, dass ne BMP-Datei länger braucht bis sie geladen ist als die selbe Datei in JPG-Format ist klar,
Nein, eher umgekehrt.
Wenn beide Dateien gleich groß sind (von der Menge her, nicht von der Breite und Höhe des Bildes) und mod_gzip eingeschaltet ist, ist die BMP-Datei schneller übertragen.
auch unnötiger Quelltext macht die Seite "unnötig langsam"! Versteht sich von selbst.
Nein, tut es nicht. Ähnlicher Grund wie oben: Wenn viel Redundanz drin ist und auch noch mit Muster, dann kann das so gut komprimiert werden, das es bei der Übertragung nicht mehr weiter auffällt.
Die Komprimierung verbraucht zwar Rechenleistung, bei statischen Seiten läßt sich jedoch cachen.
Braucht z. B. eine DB-Connection lange?
Ja. Wenn Du nicht gerade mittels HTTP o.ä. Material von anderen Seiten holst, ist das die langsamste Stelle.
Ich habe oft Funktionen wie z. B. GetNewMaxID($Tabelle, $Spalte) die die Verbindung zur DB herstellen, ne Abfrage machen und den Wert liefern, danach wird die Connection beendet.
Versuche nach Möglichkeit zusammenzufassen und soviele Informationen wie möglich auf einmal rauszuziehen.
Oft ist es auch der Fall, dass eine Funktion, 5 andere solche Funktionen aufruf, d. h. es wird 5mal ne Connection zur DB hergestellt und geschlossen. Das braucht Zeit.
Ich kenne zwar Deine Gründe für dieses Vorgehen nicht, aber das hört sich wirklich so an, als könnte man da etwas zusammenfassen.
Der Vorteil ist aber, ich kann diese Funktionen im ganzen Programm (Homepage) einsetzen da diese unabähngig sind.
Tja, ist eben nix umsonst ;-)
so short
Christoph Zurnieden
Danke für die ausführliche Antwort, werde das mit den Connections mal ändern, was ja auch Senti schon vorgeschlagen hat.
Wie schauts mit dem Befehl include aus. Ich hab auf meiner Homepage viele einezlne Seiten
der Inhalt für das Hauptfenster dieser Seiten wird jeweils aus einer
window.php geladen.
Der Inhalt für kleinere Nebenfenster wird aus der
windows.php geladen.
Ich inkludiere also am Anfang jeder Content.php diese zwei Dateien und rufe dann halt die nötigen Funktionen daraus ab. Könnte ich da auch noch was optimieren?
Hi,
Wie schauts mit dem Befehl include aus.
Könnte ich da auch noch was optimieren?
Die muß PHP vielleicht jedesmal von der Platte holen (es ist aber mittlerweile schon fast überall möglich zu cachen. Frag' mal Deinen Provider). Wenn Du also _immer_ beide Dateien benötigst, dann schmeiß beide zusammen, mach eine draus.
Bringt aber im Gegensatz zu den Einsparungen bei den DB-Abfragen so gut wie nix. Da ist es meistens billiger noch eine Pizzabox in den Cluster zu klemmen, als stunden- oder gar tagelang irgendwas zu fummeln.
Die drei Grundregeln beim Optimieren:
1. Mach's nicht!
2. (nur für Experten) Mach's noch nicht.
3. Die Geschwindigkeit eines nicht funktionierenden Programmes ist irrelevant.
CZs Theorem: die Kosten einer größeren Maschine sind umgekehrt proportional zu den Kosten eines optimierenden Programmierers.
so short
Christoph Zurnieden
Hi,
CZs Theorem: die Kosten einer größeren Maschine sind umgekehrt proportional zu den Kosten eines optimierenden Programmierers.
und was soll man damit anfangen? die aussage dieses Theorems bedeutet,
sofern ich mich richtig entsinne was umgekehrt proportional bedutet:
Also mehr oder weniger garnix. Außer das man abwegen muss was für einen
selebr die niedrigeren Kosten verursacht.
MfG
Hi,
Außer das man abwegen muss was für einen
selebr die niedrigeren Kosten verursacht.
Gaaaanz genau, damit hast Du das Wesen einer vernünftigen Optimierung voll und ganz erfaßt.
so short
Christoph Zurnieden
Hi Daniel,
unnötiger quelltext wie z.B. ellenlange Meta-Angaben unnötige und eben sonstiger unnötiger Quellcode.
Ich glaube das wollte Giovanni gar nicht mal so in erster Linie wissen - du redest hier von Sachen, die zum Clienten übertragen werden müssen, dabei ist es aber egal, ob diese von einem PHP Script ausgegeben werden oder eine statische HTML Seite sind. Ich glaube, Giovanni wollte mehr wissen, inwiefern PHP Code das Script auf dem Server verlangsamt.
Da wären z.B.:
Übrigens: PHP Kommentare schaden _nicht_ der Performance! ;-)
MfG, Dennis.
Moin!
ich wollte mal wissen was konkret Seiten ausbremst
Festplattenoperationen.
Dazu zählen natürlich die von dir genannten
- z. B. das Abspeichern von Bildern in Datenbanken
sowie sonstige aufwendige Datenbankoperationen, sowie alles, was extrem viel RAM-Speicher benutzt (dann kommt es gerne zum Swapping auf Festplatte).
Andererseits sind gewisse Dinge einfach nicht vermeidbar, Bilder beispielsweise müssen irgendwie auf der Festplatte liegen, der Geschwindigkeitsunterschied zwischen "Bild wird direkt vom Server ausgeliefert" und "Bild wird per Skript ausgeliefert" unterscheidet sich hinsichtlich des Aufwandes, die entsprechenden Bytes von der Festplatte lesen zu müssen, nicht. Um aber den Zugriff auf das Bild je nach Account regeln zu können, ist die Skriptmethode fast unabdingbar. Es hängt also jeweils vom gewünschten Einsatzzweck ab, wie Probleme gelöst werden.
- das ständige (sehr sehr häufige) Aufrufen von Funktionen
Das ist ziemlich ungefährlich. Natürlich benötigt der Aufruf einer Funktion einen gewissen zusätzlichen Aufwand für die Verwaltung lokaler Variablen, aber verglichen mit Festplattenoperationen ist das absolut vernachlässigbar.
Abgesehen davon sind solche allgemeinen Aussagen nicht unbedingt wirklichkeitsnah auf einen konkreten Anwendungsfall beziehbar. Es ist im Zweifel immer zielführender, wenn eine konkrete Anwendung mit Performanceproblem einer konkreten Problemanalyse unterzogen wird und man die Lösungsansätze dann auch mit Benchmarks auf ihre Wirksamkeit untersucht, und nicht wild irgendwelche allgemeinen Theorien anwendet.
Hi,
- z. B. das Abspeichern von Bildern in Datenbanken
Z.B. Bilder bestehen aus Binärdaten, also warum diese überhaupt in einer Datenbank speichern? Speichere besser nur Dateiverweise zu und Metainformationen über die Bilder in der DB.
- das ständige (sehr sehr häufige) Aufrufen von Funktionen
Z.B., aber manchmal nicht zu vermeiden.
Verwende so viel wie möglich interne PHP-Funktionen statt das Rad neu zu erfinden. Ach ja: und erzeuge bitte keine HTML-Tabellenmonster... ;)
MfG
Danny
Sup!
Die Benutzung von PHP?
Gruesse,
Bio
Hi Bio,
Die Benutzung von PHP?
Hör auf PHP zu diskriminieren, du ... alter Perl-Freak? ;-)
MfG, Dennis.
Tag Dennis.
du ... alter Perl-Freak? ;-)
Hah, Schurke! Um Mitternacht, an der alten Eiche!
Siech*SCNR*fred
Hi Siechfred,
du ... alter Perl-Freak? ;-)
Hah, Schurke! Um Mitternacht, an der alten Eiche!
Abgemacht
Oder doch direkt „richtig”?
Interessant, was man mit Google so alles findet
MfG, Dennis.
Hi,
Abgemacht
recht müig, auf eine Wand zu feiern, oder?
Wenn, dann doch eher so: ;-)
freundliche Grüße
Ingo
Hi Siechfred,
Interessant, was man mit Google so alles findet
Ich frage mich nur, was für Leute so etwas auf Dauer in ihrem Forum/Board aushalten...
MfG, Dennis.
Hi,
Hah, Schurke! Um Mitternacht, an der alten Eiche!
Wieder die arme Eiche... ;))
mfg
-WebViper-
Sup!
Hör auf PHP zu diskriminieren, du ... alter Perl-Freak? ;-)
Ich muss doch sehr bitten. Bestimmt ist ein Server mit PHP etwas langsamer als ein Server, der nur statische Seiten ausliefert.
Gruesse,
Bio
Hi Bio,
Bestimmt ist ein Server mit PHP etwas langsamer als ein Server, der nur statische Seiten ausliefert.
Ach ja, ich vergaß: Statische Seiten sind ja immer noch die coolsten - bzw. ... der Server bleibt dabei „cool” *g*
*gr* Schon wieder ein „Format-Defizit” bekommen - ich sollte die Deaktivierung desselben wirklich mal standardmäßig zu sein.
MfG, Dennis.