Hallo Andre,
ich habe seit gestern ein Performance-Problem mit readingsProxy.
Ich habe ca. 45 readingsProxy devices in meiner Installation.
Seit dem gestrigen Update habe ich das Problem, dass jetzt beim Anlegen von neuen Devices (egal welchen Typs) freezes von jeweils ca. 1,5 - 2 Sekunden auftreten. Auch beim Löschen von Devices treten diese freezes auf.
Problemversion:
Zitat
33_readingsProxy.pm 13230 2017-01-25 12:41:46Z justme1968
Ich habe nun die vorherige Version wieder eingespielt und damit sind die Freezes weg.
Letzte funktionierende Version (das war die Version vor dem Update):
Zitat
33_readingsProxy.pm 12689 2016-11-29 21:43:01Z justme1968
Irgendeine Idee dazu?
Wenn du weitere Infos brauchst (bestimmt!), ich bin zu allen Schandtaten bereit 8)
Gruß Benni.
So! Ich habe mein Vorgehen (https://forum.fhem.de/index.php/topic,56986.msg484214.html#msg484214) inzwischen nochmals überdacht und bin zu dem Schluß gekommen, dass die Verwendung von readingsProxy bei mir wohl nicht ganz bestimmungsgemäß ist. :-\
Das führt zum Einen zu den "vielen" readingsProxy-devices in meiner Installation und zum Anderen, wahrscheinlich allein aufgrund dieser Menge, zu den o.g. Performance-Problemen (s.a.w.u.)
Ich werde zu diesem Zweck nun bei mir auf eine weitere FHEMWEB-Instanz mit separatem iconPath umbauen, die dann allein dazu gedacht ist, meine InfoPanels entsprechend zu versorgen. Das ist letztendlich auch einfacher in der Pflege. Das braucht nämlich keine mehr, wenn es mal eingerichtet ist. 8)
Nichts desto trotz scheint es bei readingsProxy ein Performance-Problem zu geben. Ich habe mal in den Code geschaut und habe gesehen, dass das Problem wohl durch die Einführung von notifyRegexpChanged in readingsProxy_updateDevices zustande kommt. Wenn ich es richtig sehe wird dort NOTIFYDEV des readingsProxy Devices aktualisiert, was u.a. auch bei global:DEFINED und global:DELETED eines beliebigen Devices passiert.
Dadurch wird das dann aber bei allen bestehenden readingsProxy-Devices aufgerufen und ist somit auch entsprechend "teuer".
Für mich hat sich das Problem jedenfalls erst mal erledigt. :)
ich habe eben eine version von readingsProxy eingecheckt die das aktualisieren von NOTIFYDEV vom event entkoppelt damit sollten zumindest direkt im define fhem nicht mehr blockieren.
schau mal ob das schon hilft.
wenn nicht könnte man die global events beim aufruf von notifyRegexpChanged ausnehmen. das ist aber eigentlich nicht ganz sauber.
wie oft legst du denn neue devices an bzw löschst welche damit das ganze zum problem wird?
gruss
andre
Zitat von: justme1968 am 29 Januar 2017, 13:18:11
schau mal ob das schon hilft.
Danke! Werde ich nachher mal noch testen.
Zitat von: justme1968 am 29 Januar 2017, 13:18:11
wie oft legst du denn neue devices an bzw löschst welche damit das ganze zum problem wird?
Meine Fenster- und Türoffenmeldungen (https://forum.fhem.de/index.php/topic,36504.0.html) werden über temporäre at gesteuert. Dabei wird für jedes Fenster beim Öffnen ein at angelegt und beim Schließen wieder gelöscht. Bei mehrfachmeldungen je Fenster, kann dies auch mehrmals hintereinander vorkommen.
Gruß Benni.
nimm statt dem at ein benanntes sleep. dafür werden keine devices angelegt oder gelöscht.
gruss
andre
Zitat von: justme1968 am 29 Januar 2017, 14:36:50
nimm statt dem at ein benanntes sleep. dafür werden keine devices angelegt oder gelöscht.
Danke für den Tipp! :)
Schaue ich mir auch an! Kannte ich so noch gar nicht, da es in der deutschen Commandref nicht, bzw. nicht vollständig beschrieben ist.
Gruß Benni.
Zitat von: Benni am 29 Januar 2017, 14:19:59
Danke! Werde ich nachher mal noch testen.
Inzwischen hatte ich Zeit zum Testen: Mit der aktuellen Version aus SVN treten keine Freezes mehr auf!
Danke dir!
Werde aber trotzdem umbauen, auch die Fenster- und Türoffenmeldung, in beiden Fällen scheint mir das sauberer!
Zitat von: Benni am 29 Januar 2017, 16:17:11
Werde aber trotzdem umbauen, auch die Fenster- und Türoffenmeldung, in beiden Fällen scheint mir das sauberer!
DOIF hast Du dir angesehen? ISt für mich die einfachste und übersichtlichste Variante...
Zitat von: JoeALLb am 29 Januar 2017, 20:04:17
DOIF hast Du dir angesehen?
Nein! Dafür gab's bisher noch keine Notwendigkeit.
Ich bin kein großer Fan von "eierlegenden Wollmilchsäuen".
Bisher bin ich noch immer problemlos mit den einfachen Standardbausteinen at, watchdog und notify ausgekommen. Eventuell angerichtet an einem Dummy und gewürzt mit einer Prise Perl ;) Dabei möchte ich möglichst auch bleiben.
Heute ist als weitere Zutat sogar noch das benannte sleep dazugekommen. :D
Trotzdem Danke für den gut gemeinten Hinweis!
Zitat von: Benni am 29 Januar 2017, 21:14:32
Ich bin kein großer Fan von "eierlegenden Wollmilchsäuen".
So gehts vielen, mir lange auch, aber zwischenzeitlich habe ich die gewonnene Übersicht und die reduktion von Devices (kein searates dummy mehr notwendig)
zu schätzen gelernt ;-)
Aber da Du ja äußerst fit in perl bist...! Ist ja schön wenn viele Wege nach Rom führen!
schöne Grüße Joe