Fatal error: Allowed memory size of 67108864 bytes exhausted

Hi!

Ich versuche mit einem IPS-Skript eine View von IPSView umzuskalieren in eine andere Größte. Also quasi ein duplizieren einer View. Das Skript an sich funktioniert, aber nur wenn die View nur winzig klein ist. Jetzt hat die View 7.21 MB und es kommt dieser Fehler:

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 179101 bytes) in [IPSView\IPSView Skripte\Umskalierung von XY nach Faktor] on line 54

Zeile 54 ist die letzte Zeile von diesem Code:

    // Read Content of Childview
    $childContent     = IPS_GetMediaContent($childViewID);
    if ($childContent===false) {
        die("Media Objekt von Child konnte NICHT gefunden werden");
    }
    $childData         = base64_decode($childContent);
    $childObj          = json_decode($childData, true);

In der php.ini von IPS habe ich 64MB eingetragen. Reicht aber wohl leider nicht aus, obwohl er weniger Speicher belegen will…deswegen verstehe ich das nicht. Fehler im IPS?

Wenn ich in der php.ini mehr als 64MB eintrage, z.B. 128MB, dann den IPS Dienst neustarte, dann wird der Wert wieder auf 64MB zurück geändert. Kann man nicht mehr als 64MB zuweisen?

Was könnte ich machen, damit das Skript erfolgreich durchlaufen könnte?

Danke im Voraus und Grüße,
Chris

Problem wurde erledigt durch ein neues Umskalier-Skript von Brownson, welches nicht mehr benutzte Variablen zurücksetzt und damit wieder Speicher frei gibt :cool: :smiley:

Trotzdem verstehe ich nicht, wieso das Skript einen Fehler hatte, weil der zu belegende Platz deutlich kleiner war, als der gesamt vorhandene Platz im Speicher :confused:

Und die Antwort auf die Frage, ob nicht mehr als 64MB möglich sind, wäre auch noch interessant :slight_smile:

Danke und Grüße,
Chris

Ist meines Wissens eine Limitierung von IP-Symcon um zu verhindern, dass die Summe der PHP Session das gesamte Memory aufbraucht.

Siehe auch https://www.symcon.de/service/dokumentation/installation/migration-v25-v26/

Uralte Meldung, aber sie ist noch da, nachdem meine View ziemlich groß geworden ist :eek:.

Nicht schlimm dachte ich, heute gibt es ja einen Spezialschalter :cool:, aber die Einstellung scheint symcon, natürlich nach einen Restart, nicht zu interessieren.

@paresy: Wie sind denn die Grenzen bei „ServerHardQueueBytesLimit“? Da habe ich einfach mal eine 1 davor geschrieben, die aber nicht wirkt. Und im Kern ist der gewünschte Speicher ja kleiner als der gesetzte Parameter :o.

Wie kann ich jetzt meine View noch resizen?

Wäre mir neu, dass du in den Spezialschalter die RAM Grenze für PHP einstellen kannst.
Das machst du in der PHP.ini.
Michael

Das war genau die Zahl, die in der Fehlermeldung steht :D, deshalb habe ich sie angepasst :).

In der php.ini

memory_limit=32M

wäre aber auch größer wie die gewünschten etwas über 9 MB.

Dann ließ die Fehlermeldung noch einmal :smiley:
Allowed memory size of 33554432 bytes exhausted
Es wurden die maximalen 32 MB belegt und darum macht es Peng.
Michael

Aber das Modul möchte nur 9,6 MB haben, warum werden die 32 MB überschritten?

Das Modul müsste doch in einer eigenen Session laufen.

Das Script will, nach den schon belegten 32MB, noch einmal Nachschlag in Höhe von 9 MB. Und da 32MB die Grenze ist, geht das halt nicht.
Michael