PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP: Speicherfragen...


MadMan2k
2004-12-26, 15:39:28
1) was ist eigentlich Speicherintensiver Objekte oder Arrays?
Ich baue mir nämlich gerade einige Arrays mit Objekten nach, weil ich so schön auf dem OOP Trip bin. :D

2) ich habe mir bei PEAR (http://pear.php.net/package/HTML_Page2) die HTML Klassen angeguckt und gesehen, dass sie die die gesamte Ausgabe erstmal in einen String leiten, der erst am Ende ausgegeben wird.
Geht das bei größeren SEiten nicht arg auf den Speicher und wäre hier eine direkte Ausgabe nicht sinnvoller?

MadMan2k
2004-12-26, 18:53:52
ok, die erste Frage ist nach etwas überlegen Schwachsinn und die zweite hab ich im Prinzip selbst beantwortet, aber wieso kann mir das nicht jemand mal sagen? :D

Aqualon
2004-12-27, 13:30:20
Ich würde mal sagen, da die Ausgabe der PHP-Seite an den Client sowieso erst dann erfolgt, wenn sie komplett fertig interpretiert ist, spielt es keine Rolle, ob PHP den HTML-Code der per echo ausgegeben wird zwischenspeichert oder ob du das in einem String machst, der dann am Schluss per echo ausgegeben wird.

Aqua

MadMan2k
2004-12-27, 15:05:37
Ich würde mal sagen, da die Ausgabe der PHP-Seite an den Client sowieso erst dann erfolgt, wenn sie komplett fertig interpretiert ist
eben das glaube ich nicht, denn sonst bräuchte man doch auch kein Output Buffering http://www.php.net/manual/en/function.ob-start.php

Aqualon
2004-12-27, 15:25:16
Stimmt, das würde dann keinen Sinn ergeben. Dann sollte das zwischenspeichern im String mehr Speicher verbrauchen als das direkte Senden jedes echo-Befehls an den Client. Ich war der Meinung, PHP würde die Seite erst komplett parsen, bevor sie an den Client geht, aber das ist anscheinend nicht der Fall.

Aqua

littlejam
2004-12-27, 21:52:00
Alles was du in Variablen speicherst, verbraucht Speicher. Je mehr in der Variable drin steht, je mehr Speicher brauchst du.
Direkte echos werden nicht weiter zwischengespeichert.
Das sieht man z.B. gut an besonders langen Ausgaben von Datenbanken (Tabellenzeilen in einem Loop).

Von der Performance würde ich fast behaupten, dass "Seite in einer Variable generieren und dann ausgeben" schneller ist, sofern der Server die nötige Power hat.
Wenn der Server zu schlapp ist, werden sich aber Timeouts einstellen. Da ist dann eher die Variante "alles raus sobald es fertig ist" besser.

Gruß

MadMan2k
2004-12-27, 23:43:26
Alles was du in Variablen speicherst, verbraucht Speicher. Je mehr in der Variable drin steht, je mehr Speicher brauchst du.
das hab ich mir dann auch überlegt ^^

gibt es aber Unterschiede in der Bearbeitungsgeschwindigkeit von variablen, konstanten, arrays und objekten?



Von der Performance würde ich fast behaupten, dass "Seite in einer Variable generieren und dann ausgeben" schneller ist, sofern der Server die nötige Power hat.
kosten dann zwei Aufrufe von echo/ print mit je halbem Inhalt mehr als ein einzelner?
aber danke schonmal für deine Antwort. :)