Woher kommen diese phprequire_once-Aufrufe?

Ich brauche mal Unterstützung von den erfahrenen Modulentwicklern.

Aktuell wird mein Modul ZigBee2DeCONZ durch Alexa abgeschossen, was daran liegt, dass mein Modul anscheinend die Alexa-Befehle nicht schnell genug abgearbeitet kriegt. In der Folge laufen die Thread-Slots voll und IPS stürzt ab. Das sieht dann so aus:


Was ich dabei nicht verstehe: Woher kommen die „phprequire_once“ Aufrufe? In meinem Modul gibt es diese nicht. Wer löst diese aus und wie kann ich sie vermeiden?

Viele Grüße
Jürgen

Das ist IPS. Irgendwie muss es ja ein Objekt aus deiner PHP-Klasse erzeugen.
Das erfolgt durch die __generated Datei, welche deine PHP Datei einbindet mit requireonce und dann mit der InstanzID daraus ein Objekt erzeugt.
Passiert immer wenn IPS irgendwas mit deinem Modul machen muss; Datenaustausch, RequestAction, PHP-Befehle aus deinem Modul starten, etc…
Wenn der Slot rot ist, hat dein Modul den Slot gekillt. Wie…keine Ahnung :wink:
Michael

Wie lange dauert denn dein Befehl bei der Ausführung?

paresy

habe gerade mal geguckt: 230-250ms.
Wenn ich den Befehl über den Chromium-Advanced REST client absetze, dauert das lediglich 10ms.

zu den phprequire_once Aufrufen: Ist das normal, dass es doppelt soviele Aufrufe sind, wie RequestAction? Kann ich die Anzahl durch bessere Programmierung verringern?

Viele Grüße
Jürgen

Die Ausführung kannst du durch aktivieren des OPCache beschleunigen.
Ist ein Spezialschalter.
Michael

oh, cool. Probier ich mal aus. Habe eben auch schon den Hauptverursacher gefunden. Wenn ich die Rückmeldung über SendDataToChildren rausnehme, komme ich von 240 auf 80ms.

Viele Grüße
Jürgen

Da gibt es doch gar keine Rückmeldung.
Michael

Stimmt, die darunter liegende Funktion wird aber auch für andere Aufrufe genutzt. Das muss ich jetzt geschickter lösen :blush: