Ram und PHP Anwendungen

Hallo,
ich wollte mal fragen wie viel RAM einer PHP Anwendung zur Verfügung steht wenn man selbst keine Begrenzungen vorgibt und der Hoster auch keine gesetzt hat. Stehen dann bei der Ausführung einer Anwendung die volle Leistung des Servers zur Verfügung?

Dann wollte ich gerne dazu noch wissen, wie PHP mit Ram umgeht. Kommt wenn zu wenig Ram zur Verfügung steht einfach nur eine weiße Seite oder dauert das Ausführen halt länger.

Ich weiß das Ram der Zwischenspeicher ist, der der CPU die Daten für die schnelle Verarbeitung cached. Aber wie das bei PHP Anwendungen zu gelten kommt usw kann ich leider mir überhaupt nicht vorstellen.

Danke

Hallo,
ich wollte mal fragen wie viel RAM einer PHP Anwendung zur
Verfügung steht wenn man selbst keine Begrenzungen vorgibt und
der Hoster auch keine gesetzt hat.

wenn http://de3.php.net/memory-limit nicht gesetzt ist alles, was das system hergibt.

Dann wollte ich gerne dazu noch wissen, wie PHP mit Ram
umgeht. Kommt wenn zu wenig Ram zur Verfügung steht einfach
nur eine weiße Seite oder dauert das Ausführen halt länger.

du musst deine frage besser formulieren.
ein phpscript gibt daten aus, die von einem webserver ausgeliefert werden. wenn ein script so schlecht ist, dass der apache nix zum ausliefern bekommt, wird im browser u.u. nix angezeigt.
wenn der ram vollaeuft wird ausgelagert. das dauert „lange“ und u.u. laeuft dein webbrowser in ein timeout. im schlimmsten falle bricht php ab, weil es keinen arbeitsspeicher mehr allozieren kann.

Ich weiß das Ram der Zwischenspeicher ist, der der CPU die
Daten für die schnelle Verarbeitung cached.

http://de.wikipedia.org/wiki/Arbeitsspeicher

Aber wie das bei
PHP Anwendungen zu gelten kommt usw kann ich leider mir
überhaupt nicht vorstellen.

mach den taskmanager auf und schaue in das register prozesse. da solltest du eine spalte speicherauslastung sehen. jetzt startest du das programm taschenrechner, dann sollte im taskamanger ein neuer prozess calc.exe erscheinen mit einem gewissen speicherverbrauch. dann beendest du das programm der prozess verschwindet und der speicher ist wieder frei.

genauso erscheint php als speicherverbraucher.
wenn php als cgi eingebunden wird als eigener prozess oder verpackt in einem webserverprozess wenn php als modul eingebunden wird.

Hallo,

soweit ich verstanden habe, betrifft Deine Frage zwei Einträge im PHP-Info:

Wie viel Speicher PHP zur Verfügung steht, kannst Du unter „memory_limit“ sehen. Meines Wissens nach muss dort ein Wert drinstehen.

Es gibt auch eine Vorgabe, wie lang ein PHP-Skript höchstens zur Ausführung brauchen darf: „max_execution_time“. Die Zahl dort steht für Sekunden.

Ein sehr performance-durstiges Skript – was auch immer das sein sollte, willst Du etwa Atomberechnungen mit PHP durchführen? :wink: – wird wahrscheinlich den höchst-möglichen RAM von „memory_limit“ ausnutzen und das Beste daraus machen bis es dann zur Zeitgrenze von „max_execution_time“ kommt, danach passiert dann wahrscheinlich nichts mehr.

Die Power, mit der PHP ein Skript ausführen kann, hängt aber natürlich auch von der Power der CPU ab.

P.S. Die PHP-Info kannst Du sehen, indem Du ein PHP-Skript mit folgendem Inhalt erstellst und aufrufst:

<?php phpinfo();<br />?\>

Hallo

Dann wollte ich gerne dazu noch wissen, wie PHP mit Ram
umgeht. Kommt wenn zu wenig Ram zur Verfügung steht einfach
nur eine weiße Seite oder dauert das Ausführen halt länger.

Wenn der RAM voll ist wird die Festplatte als RAM missbraucht (Auslagerunsdatei/Swap). Da eine Festplatte wesentlich langsamer als ein RAM-Baustein arbeitet, braucht natürlich auch das Script länger. Wenn allerdings auch die Auslagerungsdatei voll ist, dann muss das Script abbrechen. Es kann nicht von selbst in einen RAM-Spar-Modus umschalten.

Johannes

Es kann durchaus mal sein, dass es Scripte gibt, die mehrere MiB Speicher brauchen. Ein Beispiel wäre die dynamische Berechnung von Fotogalerien bzw. ein Script das dynamisch das Bild mit Wasserzeichen berechnet. Da können schonmal die Grenzen mancher Provider (manche stelle tatsächlich nur 2MiB oder sowas in der Richtung ein!) erreicht werden - ohne Probleme.