+ Antworten
Ergebnis 1 bis 5 von 5
  1. #1
    Registriert seit
    Sep 2008
    Ort
    Hamburg
    Beiträge
    1,188

    Standard Registervariable erzeugt zu viele Threads

    Ich habe ein IO-Modul, welches per USB-Serial Daten im json-Format an Symcon unter Windows sendet. Dabei hatte ich schon länger das rätselhafte Phänomen, dass manchmal einzelne Zeichen der Datenübertragung fehlen.

    Jetzt ist es mir neulich wie Schuppen von den Augen gefallen, mal zu gucken, wie viele Threads das Handlerskript der RegVar aufmacht... Antwort: sehr viele, mitunter wohl zu viele.

    Das Skript macht erstmal nicht viel, es hängt die empfangenen Daten an den Puffer an und guckt mit strpos(), ob in dem String ein "}" vorkommt, bevor es sonstige "rechenintensivere" Stringoperationen durchführt und json_decode anwendet. Trotzdem "explodiert" im Moment des Datenempfangs (wir reden hier von einem simplen Json-Objekt mit vielleicht 7 Int-/String-Properties) die Threadanzahl für das Skript für einen Sekundenbruchteil.

    Das passiert wohl bei mehreren solchen IO-Boxen (Hardware bspw. Controllino), egal ob sie per Ehternet oder per USB angebunden sind.
    LCN für alles fixe | HM für alles bewegliche | Lötkolben für alles, was es nicht gibt
    "Der RGB-Streifen ist das Arschgeweih der Home Automation."

  2. #2
    Registriert seit
    Sep 2008
    Ort
    Hamburg
    Beiträge
    1,188

    Ich nehme an, Cutter sind genau dafür da? (Habe ich all die Jahre nie benutzt )

    Oder erzeugen die auch Threads intern?
    LCN für alles fixe | HM für alles bewegliche | Lötkolben für alles, was es nicht gibt
    "Der RGB-Streifen ist das Arschgeweih der Home Automation."

  3. #3
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    23,546

    Nein, der Cutter ist super um Daten erstmal zu "sammlen".

    paresy

  4. #4
    Registriert seit
    Sep 2008
    Ort
    Hamburg
    Beiträge
    1,188

    Danke, macht einen Riesenunterschied.

    Aber mal angenommen, ich hätte einen nicht trivial zu parsenden Datenstrom, für den ein Cutter nicht geeignet wäre - könnte ich dann irgendwie das Erstellen zu vieler Threads verhindern?
    LCN für alles fixe | HM für alles bewegliche | Lötkolben für alles, was es nicht gibt
    "Der RGB-Streifen ist das Arschgeweih der Home Automation."

  5. #5
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    23,546

    Nicht wirklich. Du willst die Daten ja auswerten so wie sie kommen.

    Aber da es normalerweise immer Zeichen gibt, an denen man synchronisieren kann, sollte der Cutter immer gute Dienste tun.

    paresy

Ähnliche Themen

  1. VoIP_PlayWave erzeugt keine Ausgabe
    Von darkdabula im Forum Allgemeine Diskussion
    Antworten: 9
    Letzter Beitrag: 29.05.20, 13:18
  2. SetVariableCustomProfile erzeugt Invalid Profile Meldung
    Von pitti im Forum Mobile (iOS/Android)
    Antworten: 4
    Letzter Beitrag: 12.01.16, 08:23
  3. Timestamp erzeugt Fehlermeldungen
    Von harry28 im Forum Skripte, PHP, SQL
    Antworten: 8
    Letzter Beitrag: 03.09.14, 10:44
  4. IPS_ExecuteEx in Script erzeugt Zugriffsverletzung
    Von AEAlexander im Forum Skripte, PHP, SQL
    Antworten: 2
    Letzter Beitrag: 25.11.13, 15:29
  5. Neues Projekt, viele Ideen, viele Fragen
    Von M.arco im Forum Haustechnik
    Antworten: 7
    Letzter Beitrag: 04.04.10, 12:25