Allowed memory size


#1

Hallo,

ich hatte gestern meine Joomla 3.2 Installation abgeschlossen und eine Seite mit T3-Framework hochgeladen. Das hat auch wunderbar nach den hier schon beschriebenen start Schwierigkeiten mit PHP geklappt. Nun meldet PHP aufeinmal dass der memory Size überschritten wird. Gestern ging noch alles.

Allowed memory size of 67108864 bytes exhausted (tried to allocate 130968 bytes) in /users/stl1/www/plugins/system/t3/includes/lessphp/lessc.inc.php on line 548

(stl1.bplaced.net/)

Komisch hierbei ist dass die Größe nicht das Problem sein kann da diese kleiner ist als die maximale Größe.

So anscheinend kann man hier die Memorysize nicht ändern ist ja auch verständlich… :neutral_face:

Gruß und Danke für die Antwort


#2

Hi,
Hast du irgendwas bei den Quelltextdateien von Joomla geändert, denn das ist eindeutig eine Endlosschleife / -rekursion? Oder wird wirklich 64Mb vom Speicher allokiert? Kann ich mir nicht vorstellen. Hier kann man kein Mem-Dump machen?
Wende dich evtl. an ein Joomla-Forum (ich weiß nicht, wie bei denen der Support funktioniert).


#3

Hallo,

ah okay vielen dank ich konnte mir das eigentlich auch nicht vorstellen. Vor allem deswegen, weil ich wirklich nur im Less file eine Farbe geändert hatte und dann kam der Fehler.
Allerdings nutze ich das T3 Framework und anscheinend wurde in deren Foren der Fehler auch schon einmal bearbeitet. Allerdings war hier eben die Lösung den Speicher zu ändern, was hier ja verständlicher weise nicht möglich ist.

aber vlt. kannst du mir noch sagen wie ich raus finden kann ob es sich wirklich um den Speicher dreht oder um die Schleife?

dann werde ich mich mal an die Joomlanerwenden.
DANKE


#4

Hi,
entschuldige für die späte Antwort. Ich hatte auf qualifiziertere Antworten gehofft, aber gut.
Es tut mir Leid. Ich kenne weder die Architektur von Joomla noch die des ?T3?-Framework. Es kann auch sein, dass wirklich so viel allokiert wird. Denn mittlerweile sind diese Projekte so groß und wenn dann auch noch “Call by Value” und nicht “Call by Reverence” verwendet wird, werden die Objekte kopiert.
Wie man feststellen kann, ob es eine Endlosschleife gibt, weiß ich leider nicht (wenn nichts ausgegeben wird). Denn es könnte eine Methode ein andere aufrufen, diese eine weitere und die wieder die Erste, dann kann das böse enden.
Es tut mir Leid: Ich kann keine Antwort liefern.


#5

Wenn das Projekt ungewöhnlich viel Speicher braucht, sollten die das ja eigentlich angeben,
kann man dann ja mit der PHP-info vergleichen.

Testweise kann man den Kram ja auch einfach auf dem eigenen Rechner installieren und gucken,
ob es mit mehr Speicher durchläuft.

Wenn man die Skripte wenigstens halbwegs versteht, kann man bei Schleifen natürlich auch
Testausgaben einfügen, damit man sich ansehen kann, was gerade passiert.
Das ist aber eher sinnvoll bei eigenen Projekten.
Wenn der Kram schon als Fertig-Skript angeboten wird, sollte das ja eigentlich so weit getestet
sein, daß sich das nicht in einer Endlosschleife aufhängt, die zudem bei jedem Umlauf neuen
Speicher anfordert (was aber natürlich formal passieren kann, wenn man etwa rekursive
Funktionsaufrufe hat ;o)