Beantwortet: Ausführungszeit von Code prüfen (z.B. notify) -->Apptime

Begonnen von Kulli, 07 April 2025, 19:07:46

Vorheriges Thema - Nächstes Thema

Kulli

Ich habe einen etwas größeren "Regler" gebaut, der als Timer läuft.
Jetzt wollte ich mal wissen, wie lange der Code zur Ausführung braucht!
Gibt es da intern Statistiken oder einen Befehl um die aktuelle Zeit in Millisekunden oder so auszugeben (z.B. per Log3)

Grund dafür ist, das ich ein paar OpenHasp Displays am fhem MQTT hängen habe, und die mir mehrmals in der Stunde anzeigen, das
die MQTT Verbindung weg ist. Ich vermute das irgendein Code von mir die weitere Ausführung blockt...

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Kulli

Hahaaa!!!!  ;D
Es wurde aber auch an ALLES gedacht!!

Danke!

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Kulli

Wenn man wüsste wonach man suchen muss :-)

Kurze Frage:
Werden Funktionen in zB 99_myutils.pm schneller bearbeitet als z.B. perlcode in Timern oder notifies?
Ich vermute die Ausführungszeiten sind gleich, oder?

Kulli

Ich habe noch eine Frage bzgl apptime:
name                                     function                               max    count      total  average   maxDly   avgDly TS Max call     param Max call
 tmr-at_Exec                              HASH(0x60a3324fbe88)                   399        6    1128.11   188.02     1.26     0.86 08.04. 18:09:04 HASH(Heizungstrigger)
 HzgPumpeSoll                             dummy_Set                              386        8    1048.01   131.00     0.00     0.00 08.04. 18:09:04 HASH(HzgPumpeSoll); HzgPumpeSoll; 70.4
 HzgPumpeSoll_notify_1                    notify_Exec                            381        4    1029.28   257.32     0.00     0.00 08.04. 18:09:04 HASH(HzgPumpeSoll_notify_1); HASH(HzgPumpeSoll)
 HeizungCtr                               CODE(0x60a3322221b0)                   380       28    1028.00    36.71     0.00     0.00 08.04. 18:09:04 HASH(HeizungCtr); HeizungCtr; Pumpe_Sollwert; 70.4
 myModbus2                                CODE(0x60a33229ec08)                    74      475    4762.07    10.03     0.00     0.00 08.04. 18:12:42 HASH(myModbus2)

Kann es sein das die ersten 4 Zeilen (mit 300 ms) verschachtelte Aufrufe sind und alle nur deshalb 300+ ms brauchten, weil der Modbus Write in Zeile 4 so lange gebraucht hat?

Ich verstehe hier die Abhängikeiten nicht ganz. Heizungstrigger (ein Timer) setzt ein Dummy auf 70,4%
Ein Notify hört auf die Dummyänderung und setzt dann ein Reading von Heizungs_Ctr.
Heizungs_Ctr ist ein ModbusAttr und setzt den Wert am Ende per Modbus RTU.

Ich bin davon ausgegangen das die Aufrufe unabhängig sind bzgl. Ihrer Laufzeit oder ich verstehe das Log noch nicht so ganz