Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. gelöst: Blockly/JS Systemlast bei "debug output (debug)"

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    828

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

gelöst: Blockly/JS Systemlast bei "debug output (debug)"

Geplant Angeheftet Gesperrt Verschoben Blockly
19 Beiträge 5 Kommentatoren 1.3k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • A Offline
    A Offline
    Andersmacher
    schrieb am zuletzt editiert von Andersmacher
    #1

    Frage an die Profis:

    Der Blockly-Block:
    test.PNG
    erzeugt den JS-Code (ermittelt durch Umschaltung im Blockly-Editor auf JS-Ansicht):

      console.debug('Test');
    

    Nach meinem bisherigen Verständnis erzeugt dieser Befehl nur dann eine Ausgabe im Log, wenn die javaskript-Instanz auf "debug" gestellt wurde. Allerdings sehe ich keinen Grund, warum der Befehl selbst nicht immer ausgeführt wird. Ich könnte mir jetzt zwei Varianten vorstellen, wie das real im Hintergrund abläuft:

    1. Bei der Ausführung des Befehls wird geprüft, ob die Instanz auf "debug" steht und nur falls dies zutrifft, wird ins Log geschrieben. In diesem Fall belastet (auch wenn dies vermutlich nur gering ist) allein das Vorhandensein des Befehls in einem Skript das System bei Ausführung des Skripts.
    2. Da die Instanz beim Setzen auf "debug" neu startet und (wenn ich das hier im Forum richtig verstanden habe) alle Skripte nach einem Instanzneustart neu übersetzt/kompiliert werden, könnte es sein, daß dieser debug-Befehl im Übersetzungs-/Kompilierungsergebnis nur enthalten ist, wenn die Instanz auch auf "debug" steht. Das wäre dann nach meinem Verständnis so ähnlich, wie das andere Programmiersprachen/Compiler via Compiler-Optionen handhaben würden. In diesem Fall würde der Befehl im "Normalfall" (also wenn die Instanz nicht auf "debug" steht) keine zusätzliche Systemlast erzeugen, weil er dann gar nicht vorhanden wäre und damit auch nicht ausgeführt werden würde.

    Weiß jemand, ob und falls ja welche der beiden genannten Möglichkeiten zutreffen?

    Hintergrund meiner Frage:
    Erzeugt man Systembelastung durch "intensives" verwenden des o. g. Blockly-Blocks?

    ioBroker auf Raspi4B 8GB Debian(12) 64Bit

    A haus-automatisierungH 2 Antworten Letzte Antwort
    0
    • A Andersmacher

      Frage an die Profis:

      Der Blockly-Block:
      test.PNG
      erzeugt den JS-Code (ermittelt durch Umschaltung im Blockly-Editor auf JS-Ansicht):

        console.debug('Test');
      

      Nach meinem bisherigen Verständnis erzeugt dieser Befehl nur dann eine Ausgabe im Log, wenn die javaskript-Instanz auf "debug" gestellt wurde. Allerdings sehe ich keinen Grund, warum der Befehl selbst nicht immer ausgeführt wird. Ich könnte mir jetzt zwei Varianten vorstellen, wie das real im Hintergrund abläuft:

      1. Bei der Ausführung des Befehls wird geprüft, ob die Instanz auf "debug" steht und nur falls dies zutrifft, wird ins Log geschrieben. In diesem Fall belastet (auch wenn dies vermutlich nur gering ist) allein das Vorhandensein des Befehls in einem Skript das System bei Ausführung des Skripts.
      2. Da die Instanz beim Setzen auf "debug" neu startet und (wenn ich das hier im Forum richtig verstanden habe) alle Skripte nach einem Instanzneustart neu übersetzt/kompiliert werden, könnte es sein, daß dieser debug-Befehl im Übersetzungs-/Kompilierungsergebnis nur enthalten ist, wenn die Instanz auch auf "debug" steht. Das wäre dann nach meinem Verständnis so ähnlich, wie das andere Programmiersprachen/Compiler via Compiler-Optionen handhaben würden. In diesem Fall würde der Befehl im "Normalfall" (also wenn die Instanz nicht auf "debug" steht) keine zusätzliche Systemlast erzeugen, weil er dann gar nicht vorhanden wäre und damit auch nicht ausgeführt werden würde.

      Weiß jemand, ob und falls ja welche der beiden genannten Möglichkeiten zutreffen?

      Hintergrund meiner Frage:
      Erzeugt man Systembelastung durch "intensives" verwenden des o. g. Blockly-Blocks?

      A Offline
      A Offline
      Andersmacher
      schrieb am zuletzt editiert von
      #2

      @andersmacher Hm, gar keine Antwort. Da hatte ich tatsächlich nicht mit gerechnet. Ist meine Frage zu speziell oder unsinnig?

      Ich frage noch ´mal anders:
      Wenn Ihr etwas größere Skripte schreibt, in denen Ihr beim/zum Testen auch viele debug-Anweisungen drin habt (vermutlich dann ja erstmal debug output "info" (damit man die Ausgaben im Log gleich angezeigt bekommt), schmeißt Ihr die dann, wenn das Skript wie gewünscht läuft, raus oder stellt Ihr sie auf debug output "debug" um, damit das Log übersichtlich bleibt und man später, falls es doch nochmal Kontrollbedarf für das Skript gibt, dies einfach durch Setzen der javascript-Instanz auf debug lösen kann?

      Falls Ihr die debugs nicht nur von "info" auf "debug" umstellt, sondern wirklich rausschmeißt, warum?
      Weil Systemlast-Bedenken wegen zuviel debug-Anweisungen bestehen?

      Gibt es da eine "good/best practice"? Ich habe dazu via Suchmaschinen seltsamerweise gar nichts gefunden.

      ioBroker auf Raspi4B 8GB Debian(12) 64Bit

      HomoranH paul53P OliverIOO 3 Antworten Letzte Antwort
      0
      • A Andersmacher

        @andersmacher Hm, gar keine Antwort. Da hatte ich tatsächlich nicht mit gerechnet. Ist meine Frage zu speziell oder unsinnig?

        Ich frage noch ´mal anders:
        Wenn Ihr etwas größere Skripte schreibt, in denen Ihr beim/zum Testen auch viele debug-Anweisungen drin habt (vermutlich dann ja erstmal debug output "info" (damit man die Ausgaben im Log gleich angezeigt bekommt), schmeißt Ihr die dann, wenn das Skript wie gewünscht läuft, raus oder stellt Ihr sie auf debug output "debug" um, damit das Log übersichtlich bleibt und man später, falls es doch nochmal Kontrollbedarf für das Skript gibt, dies einfach durch Setzen der javascript-Instanz auf debug lösen kann?

        Falls Ihr die debugs nicht nur von "info" auf "debug" umstellt, sondern wirklich rausschmeißt, warum?
        Weil Systemlast-Bedenken wegen zuviel debug-Anweisungen bestehen?

        Gibt es da eine "good/best practice"? Ich habe dazu via Suchmaschinen seltsamerweise gar nichts gefunden.

        HomoranH Nicht stören
        HomoranH Nicht stören
        Homoran
        Global Moderator Administrators
        schrieb am zuletzt editiert von
        #3

        @andersmacher sagte in Blockly/JS Systembelastung durch "debug output (debug)":

        vermutlich dann ja erstmal debug output "info

        nöö, debug kommt immer unter dem Editorfenster ohne das iobroker log aufzublähen.

        kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

        1 Antwort Letzte Antwort
        0
        • A Andersmacher

          @andersmacher Hm, gar keine Antwort. Da hatte ich tatsächlich nicht mit gerechnet. Ist meine Frage zu speziell oder unsinnig?

          Ich frage noch ´mal anders:
          Wenn Ihr etwas größere Skripte schreibt, in denen Ihr beim/zum Testen auch viele debug-Anweisungen drin habt (vermutlich dann ja erstmal debug output "info" (damit man die Ausgaben im Log gleich angezeigt bekommt), schmeißt Ihr die dann, wenn das Skript wie gewünscht läuft, raus oder stellt Ihr sie auf debug output "debug" um, damit das Log übersichtlich bleibt und man später, falls es doch nochmal Kontrollbedarf für das Skript gibt, dies einfach durch Setzen der javascript-Instanz auf debug lösen kann?

          Falls Ihr die debugs nicht nur von "info" auf "debug" umstellt, sondern wirklich rausschmeißt, warum?
          Weil Systemlast-Bedenken wegen zuviel debug-Anweisungen bestehen?

          Gibt es da eine "good/best practice"? Ich habe dazu via Suchmaschinen seltsamerweise gar nichts gefunden.

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @andersmacher sagte: schmeißt Ihr die dann, wenn das Skript wie gewünscht läuft, raus

          Man kann Blöcke auch deaktivieren. Dann werden sie nicht kompiliert.

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          A 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @andersmacher sagte: schmeißt Ihr die dann, wenn das Skript wie gewünscht läuft, raus

            Man kann Blöcke auch deaktivieren. Dann werden sie nicht kompiliert.

            A Offline
            A Offline
            Andersmacher
            schrieb am zuletzt editiert von
            #5

            Danke für Eure Rückmeldungen!

            @homoran Das kann ich so nicht bestäigen. Beim @andersmacher läuft das mal wieder anders:cry: :
            Unbenannt.PNG
            ergibt im Protokoll (das ist doch das ioBroker-Log - oder?) nach Skriptstart:
            Unbenannt.PNG

            @paul53 Ja, das ist mir bekannt, aber dann muß man sie (ggf. ja viele) auch alle wieder einzeln aktivieren, wenn man sie doch wieder braucht. Mit debug output "debug" und Instanz auf "debug" stellen scheint mir das einfacher und eigentlich hatte ich bisher auch geglaubt, daß das dafür auch gemacht ist.

            ioBroker auf Raspi4B 8GB Debian(12) 64Bit

            HomoranH 1 Antwort Letzte Antwort
            0
            • A Andersmacher

              Frage an die Profis:

              Der Blockly-Block:
              test.PNG
              erzeugt den JS-Code (ermittelt durch Umschaltung im Blockly-Editor auf JS-Ansicht):

                console.debug('Test');
              

              Nach meinem bisherigen Verständnis erzeugt dieser Befehl nur dann eine Ausgabe im Log, wenn die javaskript-Instanz auf "debug" gestellt wurde. Allerdings sehe ich keinen Grund, warum der Befehl selbst nicht immer ausgeführt wird. Ich könnte mir jetzt zwei Varianten vorstellen, wie das real im Hintergrund abläuft:

              1. Bei der Ausführung des Befehls wird geprüft, ob die Instanz auf "debug" steht und nur falls dies zutrifft, wird ins Log geschrieben. In diesem Fall belastet (auch wenn dies vermutlich nur gering ist) allein das Vorhandensein des Befehls in einem Skript das System bei Ausführung des Skripts.
              2. Da die Instanz beim Setzen auf "debug" neu startet und (wenn ich das hier im Forum richtig verstanden habe) alle Skripte nach einem Instanzneustart neu übersetzt/kompiliert werden, könnte es sein, daß dieser debug-Befehl im Übersetzungs-/Kompilierungsergebnis nur enthalten ist, wenn die Instanz auch auf "debug" steht. Das wäre dann nach meinem Verständnis so ähnlich, wie das andere Programmiersprachen/Compiler via Compiler-Optionen handhaben würden. In diesem Fall würde der Befehl im "Normalfall" (also wenn die Instanz nicht auf "debug" steht) keine zusätzliche Systemlast erzeugen, weil er dann gar nicht vorhanden wäre und damit auch nicht ausgeführt werden würde.

              Weiß jemand, ob und falls ja welche der beiden genannten Möglichkeiten zutreffen?

              Hintergrund meiner Frage:
              Erzeugt man Systembelastung durch "intensives" verwenden des o. g. Blockly-Blocks?

              haus-automatisierungH Online
              haus-automatisierungH Online
              haus-automatisierung
              Developer Most Active
              schrieb am zuletzt editiert von haus-automatisierung
              #6

              @andersmacher sagte in Blockly/JS Systembelastung durch "debug output (debug)":

              Bei der Ausführung des Befehls wird geprüft, ob die Instanz auf "debug" steht und nur falls dies zutrifft, wird ins Log geschrieben.

              So ist das richtig. Da findet halt jedes Mal ein Vergleich statt ob das konfigurierte Level zum Level der Meldung passt.

              In diesem Fall belastet (auch wenn dies vermutlich nur gering ist) allein das Vorhandensein des Befehls in einem Skript das System bei Ausführung des Skripts.

              Da würde ich mir um die paar Auswertungen in deinen Scripts keine Sorgen machen, da alle Adapter mit hunderten von diesen Debug-Zeilen (welche meistens dank höherem Log Level ins leere laufen) das System "belasten". Und davon merkst Du in der Regel ja auch nichts.

              🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
              🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
              📚 Meine inoffizielle ioBroker Dokumentation

              A 1 Antwort Letzte Antwort
              0
              • A Andersmacher

                @andersmacher Hm, gar keine Antwort. Da hatte ich tatsächlich nicht mit gerechnet. Ist meine Frage zu speziell oder unsinnig?

                Ich frage noch ´mal anders:
                Wenn Ihr etwas größere Skripte schreibt, in denen Ihr beim/zum Testen auch viele debug-Anweisungen drin habt (vermutlich dann ja erstmal debug output "info" (damit man die Ausgaben im Log gleich angezeigt bekommt), schmeißt Ihr die dann, wenn das Skript wie gewünscht läuft, raus oder stellt Ihr sie auf debug output "debug" um, damit das Log übersichtlich bleibt und man später, falls es doch nochmal Kontrollbedarf für das Skript gibt, dies einfach durch Setzen der javascript-Instanz auf debug lösen kann?

                Falls Ihr die debugs nicht nur von "info" auf "debug" umstellt, sondern wirklich rausschmeißt, warum?
                Weil Systemlast-Bedenken wegen zuviel debug-Anweisungen bestehen?

                Gibt es da eine "good/best practice"? Ich habe dazu via Suchmaschinen seltsamerweise gar nichts gefunden.

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #7

                @andersmacher
                Wegen ein paar Anweisungen würde ich mir keine Gedanken machen.
                Der Befehl wird allerdings schon ausgeführt nur irgendwann sieht der JavaScript Adapter, das da nix offen ist wo er was ausgeben kann bzw. Die Iobroker logging Komponente filtert es dann aus, aber davon erfährt der JavaScript Adapter dann nix mehr davon.

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                1 Antwort Letzte Antwort
                0
                • haus-automatisierungH haus-automatisierung

                  @andersmacher sagte in Blockly/JS Systembelastung durch "debug output (debug)":

                  Bei der Ausführung des Befehls wird geprüft, ob die Instanz auf "debug" steht und nur falls dies zutrifft, wird ins Log geschrieben.

                  So ist das richtig. Da findet halt jedes Mal ein Vergleich statt ob das konfigurierte Level zum Level der Meldung passt.

                  In diesem Fall belastet (auch wenn dies vermutlich nur gering ist) allein das Vorhandensein des Befehls in einem Skript das System bei Ausführung des Skripts.

                  Da würde ich mir um die paar Auswertungen in deinen Scripts keine Sorgen machen, da alle Adapter mit hunderten von diesen Debug-Zeilen (welche meistens dank höherem Log Level ins leere laufen) das System "belasten". Und davon merkst Du in der Regel ja auch nichts.

                  A Offline
                  A Offline
                  Andersmacher
                  schrieb am zuletzt editiert von
                  #8

                  @haus-automatisierung und @OliverIO Auch Euch einen Dank!
                  Daß das (für/in EIN/EINEM Skript) nicht VIEL aus macht, dachte ich mir schon ("auch wenn dies vermutlich nur gering ist"). Aber @haus-automatisierung schreibt ja auch:

                  ... da alle Adapter mit hunderten von diesen Debug-Zeilen (welche meistens dank höherem Log Level ins leere laufen) das System "belasten"...

                  Ich habe ioBroker als sehr durchdachtes/optimiertes System kennengelernt und daher eigentlich auf meinen Fall 2) getippt. Denn wozu Anweisungen beim Kompilieren im Code belassen, die (bei dem Log-Level mit dem / für den sie kompiliert werden) ohnehin nichts bewirken?

                  Keine Ahnung, ob das dann ein zu großer Prüfaufwand für den Kompiler wäre. War halt so ein Gedanke, der mir kam, als ich in einem etwas größeren Skript zum 1. Mal etwas "verschwenderischer" mit debugs war.

                  Nochmals Danke an alle für die Klärung!

                  ioBroker auf Raspi4B 8GB Debian(12) 64Bit

                  haus-automatisierungH 1 Antwort Letzte Antwort
                  0
                  • A Andersmacher

                    @haus-automatisierung und @OliverIO Auch Euch einen Dank!
                    Daß das (für/in EIN/EINEM Skript) nicht VIEL aus macht, dachte ich mir schon ("auch wenn dies vermutlich nur gering ist"). Aber @haus-automatisierung schreibt ja auch:

                    ... da alle Adapter mit hunderten von diesen Debug-Zeilen (welche meistens dank höherem Log Level ins leere laufen) das System "belasten"...

                    Ich habe ioBroker als sehr durchdachtes/optimiertes System kennengelernt und daher eigentlich auf meinen Fall 2) getippt. Denn wozu Anweisungen beim Kompilieren im Code belassen, die (bei dem Log-Level mit dem / für den sie kompiliert werden) ohnehin nichts bewirken?

                    Keine Ahnung, ob das dann ein zu großer Prüfaufwand für den Kompiler wäre. War halt so ein Gedanke, der mir kam, als ich in einem etwas größeren Skript zum 1. Mal etwas "verschwenderischer" mit debugs war.

                    Nochmals Danke an alle für die Klärung!

                    haus-automatisierungH Online
                    haus-automatisierungH Online
                    haus-automatisierung
                    Developer Most Active
                    schrieb am zuletzt editiert von haus-automatisierung
                    #9

                    @andersmacher sagte in Blockly/JS Systembelastung durch "debug output (debug)":

                    Denn wozu Anweisungen beim Kompilieren im Code belassen

                    1. JavaScript wird nicht kompiliert, sondern interpretiert (Das ist nicht 100% der richtige Terminus, aber für die Erklärung völlig egal). Jedenfalls gibt es keine "Binärdaten" die irgendwo auf der Festplatte liegen. Es gibt nur den Quellcode und kein "Kompilat" (als Datei), wie das z.B. bei C++ der Fall ist, wo man dem Präprozessor sagen kann, dass bestimmte Teile ausgelassen oder "leer" implementiert werden sollen.
                    2. Könntest Du ja jederzeit das Loglevel einer Instanz umstellen und somit die Meldungen sehen wollen. Das würde ja gar nicht möglich sein, wenn diese gar nicht in den Binärdaten vorhanden wären (welche es bei JavaScript ja eh nicht gibt in der Form)
                    3. Macht das fast jede Software so, welche ich kenne. Du kannst z.B. eine SSH-Verbindung auch mit ssh -vvv <nutzer>@<host> starten und bekommst richtig viele Ausgaben, welche Du sonst gar nicht siehst. Weil Du das verbose-Level erhöht hast. Und da wird ssh ja auch nicht neu kompiliert - das würde ja viel länger dauern und mehr Ressourcen brauchen, als kurz ein paar Dinge zu prüfen und zu überspringen...

                    Kurzum: Mach Dir keinen Stress wegen den paar Auswertungen. Das wird Dein System schon nicht ans Limit bringen oder für eine viel höhere Auslastung sorgen.

                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                    📚 Meine inoffizielle ioBroker Dokumentation

                    A paul53P 3 Antworten Letzte Antwort
                    0
                    • haus-automatisierungH haus-automatisierung

                      @andersmacher sagte in Blockly/JS Systembelastung durch "debug output (debug)":

                      Denn wozu Anweisungen beim Kompilieren im Code belassen

                      1. JavaScript wird nicht kompiliert, sondern interpretiert (Das ist nicht 100% der richtige Terminus, aber für die Erklärung völlig egal). Jedenfalls gibt es keine "Binärdaten" die irgendwo auf der Festplatte liegen. Es gibt nur den Quellcode und kein "Kompilat" (als Datei), wie das z.B. bei C++ der Fall ist, wo man dem Präprozessor sagen kann, dass bestimmte Teile ausgelassen oder "leer" implementiert werden sollen.
                      2. Könntest Du ja jederzeit das Loglevel einer Instanz umstellen und somit die Meldungen sehen wollen. Das würde ja gar nicht möglich sein, wenn diese gar nicht in den Binärdaten vorhanden wären (welche es bei JavaScript ja eh nicht gibt in der Form)
                      3. Macht das fast jede Software so, welche ich kenne. Du kannst z.B. eine SSH-Verbindung auch mit ssh -vvv <nutzer>@<host> starten und bekommst richtig viele Ausgaben, welche Du sonst gar nicht siehst. Weil Du das verbose-Level erhöht hast. Und da wird ssh ja auch nicht neu kompiliert - das würde ja viel länger dauern und mehr Ressourcen brauchen, als kurz ein paar Dinge zu prüfen und zu überspringen...

                      Kurzum: Mach Dir keinen Stress wegen den paar Auswertungen. Das wird Dein System schon nicht ans Limit bringen oder für eine viel höhere Auslastung sorgen.

                      A Offline
                      A Offline
                      Andersmacher
                      schrieb am zuletzt editiert von
                      #10

                      @haus-automatisierung
                      Zu 1. und 2.
                      Daß eine Skriptsprache (normalerweise?) nicht kompiliert wird, war mir bekannt bzw. so dachte ich das immer, bis ich in einem Artikel/Thread oder was auch immer das war (Das war zu dem Thema, daß man mit Skripten unter common vorsichtig sein sollte) gelesen habe, daß im ioBkroker die Skripte bei Start der javascript-Instanz immer neu übersetzt (=kompiliert?) werden. Hatte mich gewundert, aber ich hab´s geglaubt, weil ich daraufhin im I-Net auch Artikel gefunden habe, die besagen, daß z. B. Browser JS-Code kompilieren.

                      Zu 3. sage ich nichts, weil ich mich damit nicht auskenne.

                      ioBroker auf Raspi4B 8GB Debian(12) 64Bit

                      haus-automatisierungH 1 Antwort Letzte Antwort
                      0
                      • haus-automatisierungH haus-automatisierung

                        @andersmacher sagte in Blockly/JS Systembelastung durch "debug output (debug)":

                        Denn wozu Anweisungen beim Kompilieren im Code belassen

                        1. JavaScript wird nicht kompiliert, sondern interpretiert (Das ist nicht 100% der richtige Terminus, aber für die Erklärung völlig egal). Jedenfalls gibt es keine "Binärdaten" die irgendwo auf der Festplatte liegen. Es gibt nur den Quellcode und kein "Kompilat" (als Datei), wie das z.B. bei C++ der Fall ist, wo man dem Präprozessor sagen kann, dass bestimmte Teile ausgelassen oder "leer" implementiert werden sollen.
                        2. Könntest Du ja jederzeit das Loglevel einer Instanz umstellen und somit die Meldungen sehen wollen. Das würde ja gar nicht möglich sein, wenn diese gar nicht in den Binärdaten vorhanden wären (welche es bei JavaScript ja eh nicht gibt in der Form)
                        3. Macht das fast jede Software so, welche ich kenne. Du kannst z.B. eine SSH-Verbindung auch mit ssh -vvv <nutzer>@<host> starten und bekommst richtig viele Ausgaben, welche Du sonst gar nicht siehst. Weil Du das verbose-Level erhöht hast. Und da wird ssh ja auch nicht neu kompiliert - das würde ja viel länger dauern und mehr Ressourcen brauchen, als kurz ein paar Dinge zu prüfen und zu überspringen...

                        Kurzum: Mach Dir keinen Stress wegen den paar Auswertungen. Das wird Dein System schon nicht ans Limit bringen oder für eine viel höhere Auslastung sorgen.

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #11

                        @haus-automatisierung sagte: JavaScript wird nicht kompiliert, sondern interpretiert

                        Node.js verwendet einen JIT-Compiler (V8).

                        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                        OliverIOO haus-automatisierungH 2 Antworten Letzte Antwort
                        0
                        • paul53P paul53

                          @haus-automatisierung sagte: JavaScript wird nicht kompiliert, sondern interpretiert

                          Node.js verwendet einen JIT-Compiler (V8).

                          OliverIOO Offline
                          OliverIOO Offline
                          OliverIO
                          schrieb am zuletzt editiert von OliverIO
                          #12

                          @paul53
                          V8 kommt ursprünglich aus dem chromium Projekt und ist Bestandteil von chrome und edge
                          https://de.wikipedia.org/wiki/V8_(JavaScript-Implementierung)?wprov=sfti1
                          Das selbe (wie man es auch immer nennt) passiert im Browser auch.

                          Meine Adapter und Widgets
                          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                          Links im Profil

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • OliverIOO OliverIO

                            @paul53
                            V8 kommt ursprünglich aus dem chromium Projekt und ist Bestandteil von chrome und edge
                            https://de.wikipedia.org/wiki/V8_(JavaScript-Implementierung)?wprov=sfti1
                            Das selbe (wie man es auch immer nennt) passiert im Browser auch.

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von
                            #13

                            @oliverio sagte: V8 ... ist Bestandteil von chrome und edge

                            ... und von Node.js.

                            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                            OliverIOO 1 Antwort Letzte Antwort
                            0
                            • paul53P paul53

                              @oliverio sagte: V8 ... ist Bestandteil von chrome und edge

                              ... und von Node.js.

                              OliverIOO Offline
                              OliverIOO Offline
                              OliverIO
                              schrieb am zuletzt editiert von
                              #14

                              @paul53 ja genau

                              Meine Adapter und Widgets
                              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                              Links im Profil

                              A 1 Antwort Letzte Antwort
                              0
                              • A Andersmacher

                                Danke für Eure Rückmeldungen!

                                @homoran Das kann ich so nicht bestäigen. Beim @andersmacher läuft das mal wieder anders:cry: :
                                Unbenannt.PNG
                                ergibt im Protokoll (das ist doch das ioBroker-Log - oder?) nach Skriptstart:
                                Unbenannt.PNG

                                @paul53 Ja, das ist mir bekannt, aber dann muß man sie (ggf. ja viele) auch alle wieder einzeln aktivieren, wenn man sie doch wieder braucht. Mit debug output "debug" und Instanz auf "debug" stellen scheint mir das einfacher und eigentlich hatte ich bisher auch geglaubt, daß das dafür auch gemacht ist.

                                HomoranH Nicht stören
                                HomoranH Nicht stören
                                Homoran
                                Global Moderator Administrators
                                schrieb am zuletzt editiert von
                                #15

                                @andersmacher sagte in Blockly/JS Systembelastung durch "debug output (debug)":

                                ergibt im Protokoll (das ist doch das ioBroker-Log - oder?) nach Skriptstart:

                                ist ja auch info und nicht debug

                                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                1 Antwort Letzte Antwort
                                0
                                • OliverIOO OliverIO

                                  @paul53 ja genau

                                  A Offline
                                  A Offline
                                  Andersmacher
                                  schrieb am zuletzt editiert von
                                  #16

                                  Ich setze das Thema ´mal auf gelöst, lese aber gern noch mit, wenn Ihr hier weitere Infos einbringt.

                                  ioBroker auf Raspi4B 8GB Debian(12) 64Bit

                                  1 Antwort Letzte Antwort
                                  0
                                  • paul53P paul53

                                    @haus-automatisierung sagte: JavaScript wird nicht kompiliert, sondern interpretiert

                                    Node.js verwendet einen JIT-Compiler (V8).

                                    haus-automatisierungH Online
                                    haus-automatisierungH Online
                                    haus-automatisierung
                                    Developer Most Active
                                    schrieb am zuletzt editiert von
                                    #17

                                    @paul53 sagte in gelöst: Blockly/JS Systemlast bei "debug output (debug)":

                                    Node.js verwendet einen JIT-Compiler (V8).

                                    Ja, das ist richtig - war nicht 100% korrekt erklärt. Tut aber auch nichts zur Sache für die Erklärung und solche Begriffe verwirren den TO bei der Fragestellung ja nur (noch mehr). Habe die Antwort noch einmal editiert.

                                    🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                    🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                    📚 Meine inoffizielle ioBroker Dokumentation

                                    1 Antwort Letzte Antwort
                                    0
                                    • A Andersmacher

                                      @haus-automatisierung
                                      Zu 1. und 2.
                                      Daß eine Skriptsprache (normalerweise?) nicht kompiliert wird, war mir bekannt bzw. so dachte ich das immer, bis ich in einem Artikel/Thread oder was auch immer das war (Das war zu dem Thema, daß man mit Skripten unter common vorsichtig sein sollte) gelesen habe, daß im ioBkroker die Skripte bei Start der javascript-Instanz immer neu übersetzt (=kompiliert?) werden. Hatte mich gewundert, aber ich hab´s geglaubt, weil ich daraufhin im I-Net auch Artikel gefunden habe, die besagen, daß z. B. Browser JS-Code kompilieren.

                                      Zu 3. sage ich nichts, weil ich mich damit nicht auskenne.

                                      haus-automatisierungH Online
                                      haus-automatisierungH Online
                                      haus-automatisierung
                                      Developer Most Active
                                      schrieb am zuletzt editiert von
                                      #18

                                      @andersmacher sagte in gelöst: Blockly/JS Systemlast bei "debug output (debug)":

                                      daß im ioBkroker die Skripte bei Start der javascript-Instanz immer neu übersetzt (=kompiliert?) werden. Hatte mich gewundert

                                      Wo hast Du das gelesen? Es kommt drauf an, was man nutzt. TypeScript z.B. ist wieder eine Ausnahme und muss erstmal vom JavaScript-Adapter in "normales JavaScript" übersetzt werden. Kompilieren ist dafür aber der falsche Begriff.

                                      🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
                                      🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
                                      📚 Meine inoffizielle ioBroker Dokumentation

                                      1 Antwort Letzte Antwort
                                      0
                                      • haus-automatisierungH haus-automatisierung

                                        @andersmacher sagte in Blockly/JS Systembelastung durch "debug output (debug)":

                                        Denn wozu Anweisungen beim Kompilieren im Code belassen

                                        1. JavaScript wird nicht kompiliert, sondern interpretiert (Das ist nicht 100% der richtige Terminus, aber für die Erklärung völlig egal). Jedenfalls gibt es keine "Binärdaten" die irgendwo auf der Festplatte liegen. Es gibt nur den Quellcode und kein "Kompilat" (als Datei), wie das z.B. bei C++ der Fall ist, wo man dem Präprozessor sagen kann, dass bestimmte Teile ausgelassen oder "leer" implementiert werden sollen.
                                        2. Könntest Du ja jederzeit das Loglevel einer Instanz umstellen und somit die Meldungen sehen wollen. Das würde ja gar nicht möglich sein, wenn diese gar nicht in den Binärdaten vorhanden wären (welche es bei JavaScript ja eh nicht gibt in der Form)
                                        3. Macht das fast jede Software so, welche ich kenne. Du kannst z.B. eine SSH-Verbindung auch mit ssh -vvv <nutzer>@<host> starten und bekommst richtig viele Ausgaben, welche Du sonst gar nicht siehst. Weil Du das verbose-Level erhöht hast. Und da wird ssh ja auch nicht neu kompiliert - das würde ja viel länger dauern und mehr Ressourcen brauchen, als kurz ein paar Dinge zu prüfen und zu überspringen...

                                        Kurzum: Mach Dir keinen Stress wegen den paar Auswertungen. Das wird Dein System schon nicht ans Limit bringen oder für eine viel höhere Auslastung sorgen.

                                        A Offline
                                        A Offline
                                        Andersmacher
                                        schrieb am zuletzt editiert von
                                        #19

                                        @haus-automatisierung Ich meine, es war dieses Jahr hier im Forum. Wenn ich noch genau wüßte, wo ich´s gelesen habe, hätte ich den Link eingefügt.

                                        @andersmacher sagte in gelöst: Blockly/JS Systemlast bei "debug output (debug)":

                                        Da die Instanz beim Setzen auf "debug" neu startet

                                        Habe gerade festgestellt, daß es jetzt? (hatte nicht in Erinnerung, daß das schon immer so war) eine Option gibt, den debug-Level auch ohne Instanzneustart zu ändern:Unbenannt.PNG

                                        für diesen Fall trifft Dein Hinweis dann natürlich voll zu:

                                        @haus-automatisierung sagte in gelöst: Blockly/JS Systemlast bei "debug output (debug)":

                                        Könntest Du ja jederzeit das Loglevel einer Instanz umstellen und somit die Meldungen sehen wollen.

                                        Was dabei für mich noch offen bleibt:
                                        Wenn man den debug-Level der Instanz auch ohne Neustart ändern kann, warum macht man das dann nicht immer so? Suggeriert für mich irgendwie, daß es auch einen Nachteil hat.

                                        @Homoran
                                        @Homoran sagte in gelöst: Blockly/JS Systemlast bei "debug output (debug)":

                                        nöö, debug kommt immer unter dem Editorfenster ohne das iobroker log aufzublähen.

                                        Entschuldige bitte, ich hatte Dein "debug" als den Befehl und nicht als die Log-Stufe verstanden. Das war wohl eine Fehlinterpretation von mir.

                                        Allerdings taucht das debug im Editor unter dem Skript ja auch nur dann auf, wenn die Log-Stufe der Instanz zur Log-Stufe des debug-Befehls paßt und in diesem Fall landets auch immer im Protokoll. Das dann als "aufblähen" zu bezeichnen war von mir nicht korrekt, denn das will man in dem Moment ja dann auch bewußt so. Wenn man auf "info" zurückstellt, würde ein 'debug output "debug"' das Protokoll nicht mehr vergrößern.

                                        Wenn ich das alles für mich nochmal zusammenfasse bin ich bei:

                                        • Eine Debug-Anweisung im Skript ist da auch bei der Ausführung und zwar egal, für welchen Level sie definiert wurde und auf welchem Debug-Level die JS-Skript-Instanz steht.
                                        • Der "nackte" debug-Befehl wird daher immer ausgeführt und nimmt eine sehr kurze CPU-Zeit in Anspruch.
                                        • Das wird allgemein tolleriert/als unkritisch angesehen, weil die Vorteile einer später jederzeit möglichen Nachverfolgung der Skript-Funktionalität überwiegen.
                                          -Ob die debug-Anweisung auch eine (sichtbare) Reaktion nach sich zieht (z. B. Ausgabe im Log), hängt vom debug-Level des Befehls und der Log-Stufe der Instanz ab.

                                        ioBroker auf Raspi4B 8GB Debian(12) 64Bit

                                        1 Antwort Letzte Antwort
                                        0
                                        Antworten
                                        • In einem neuen Thema antworten
                                        Anmelden zum Antworten
                                        • Älteste zuerst
                                        • Neuste zuerst
                                        • Meiste Stimmen


                                        Support us

                                        ioBroker
                                        Community Adapters
                                        Donate

                                        676

                                        Online

                                        32.6k

                                        Benutzer

                                        82.1k

                                        Themen

                                        1.3m

                                        Beiträge
                                        Community
                                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                        ioBroker Community 2014-2025
                                        logo
                                        • Anmelden

                                        • Du hast noch kein Konto? Registrieren

                                        • Anmelden oder registrieren, um zu suchen
                                        • Erster Beitrag
                                          Letzter Beitrag
                                        0
                                        • Home
                                        • Aktuell
                                        • Tags
                                        • Ungelesen 0
                                        • Kategorien
                                        • Unreplied
                                        • Beliebt
                                        • GitHub
                                        • Docu
                                        • Hilfe