Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Java Script Ressourcen optimal nutzen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Java Script Ressourcen optimal nutzen

    This topic has been deleted. Only users with topic management privileges can see it.
    • etv
      etv last edited by

      Liebe Leute,
      nachdem ich dabei bin wiedermal ein neues System zwecks Bereinigung aufzusetzen, möchte ich nun auch meine Scripte optimieren.
      Daher folgende Fragen zum Java Script Adapter:

      1. viele kleine oder wenige große Scripte - was ist besser?
      2. Scripte im global Ordner werden immer einzeln geladen, oder sind die sowieso im RAM
      3. haben Kommentar Zeilen einen Einfluss auf den Speicherverbrauch im RAM?
      4. und - was ich noch immer nicht kapiert hab - was ist der Unterschied zwischen Variablen die als const und die die als var angelegt werden?? Sind const Variablen über Scripte hinweg sichtbar?

      Liebe Grüße
      Tom

      Ro75 paul53 2 Replies Last reply Reply Quote 0
      • Ro75
        Ro75 @etv last edited by Ro75

        @etv sagte in Java Script Ressourcen optimal nutzen:

        viele kleine oder wenige große Scripte - was ist besser?

        Kleine Skripte sind übersichtlicher und bei der Fehlersuche besser. Muss ein Skript mal deaktiviert werden, sind kleine auch besser, da da nicht eine ganze "Ketten" stillgelegt wird.

        @etv sagte in Java Script Ressourcen optimal nutzen:

        Scripte im global Ordner werden immer einzeln geladen, oder sind die sowieso im RAM

        So weinig "globale" Skripte wie möglich!!! Globale Skripte werden immer noch zusätzlich vor alle anderen Skripte in "common" gesetzt. Vom RAM her sub optimal und im Fehlerfall eine "Katastrophe" (z.B. bei der Fehlersuche)

        @etv sagte in Java Script Ressourcen optimal nutzen:

        haben Kommentar Zeilen einen Einfluss auf den Speicherverbrauch im RAM?

        Nicht wirklich. Hilft aber ungemein beim Verstehen vom Code.

        @etv sagte in Java Script Ressourcen optimal nutzen:

        und - was ich noch immer nicht kapiert hab - was ist der Unterschied zwischen Variablen die als const und die die als var angelegt werden??

        "const" sind Konstanten, also eher was "festes" und nicht "änderbar". "var" sind Variablen, also eher variabel (mit denen kan man arbeiten - verändern)

        @etv sagte in Java Script Ressourcen optimal nutzen:

        Sind const Variablen über Scripte hinweg sichtbar?

        Nur wenn in "global" gelegt. Aber wie wir nun wissen, nicht unbedingt machen.

        Ro75.

        Homoran 1 Reply Last reply Reply Quote 1
        • Homoran
          Homoran Global Moderator Administrators @Ro75 last edited by

          @ro75 sagte in Java Script Ressourcen optimal nutzen:

          vor alle anderen Skripte in "common" gesetzt.

          vor alle!
          nicht nur die in common, auch die, die in anderen Strukturen liegen.

          Ro75 1 Reply Last reply Reply Quote 2
          • Ro75
            Ro75 @Homoran last edited by

            @homoran sagte in Java Script Ressourcen optimal nutzen:

            auch die, die in anderen Strukturen liegen.

            ich ging davon aus, dass das auch so verstanden wird. Mit "common" war tatsächlich ALLES gemeint. Ordner und Unterordner und Unterordner und ... Egal wie tief und was auf jeder Ebene ist.

            Ro75.

            1 Reply Last reply Reply Quote 2
            • OliverIO
              OliverIO last edited by

              @etv
              Jedes Skript benötigt auch noch ein wenig Verwaltung krims Krams drum rum.
              Das erhöht auch ein wenig den Speicherbedarf im RAM und nimmt ein wenig Performance weg.
              Daher, Sachen, die sinnvoll zusammen gehören in ein Skript.

              Ro75 1 Reply Last reply Reply Quote 2
              • Ro75
                Ro75 @OliverIO last edited by

                @oliverio sagte in Java Script Ressourcen optimal nutzen:

                Daher, Sachen, die sinnvoll zusammen gehören in ein Skript.

                Das ist Ansichtssache. Ich hatte das bei mir mal so umgestellt. Ja, dannach etwa 100 MB weniger RAM. Aber für mich unübersichtlicher. Letztlich wieder aufgetrennt.

                Ro75.

                1 Reply Last reply Reply Quote 2
                • paul53
                  paul53 @etv last edited by paul53

                  @etv
                  Zu 2. Unter "global" deklariert man nur eigene, häufig verwendete Funktionen, denn Funktionen werden erst bei ihrem Aufruf kompiliert.
                  Zu 3. Kommentare werden nicht kompiliert.

                  Zu 1. Meine Devise: So klein wie möglich und so groß wie nötig. In einen Datenpunkt sollte man nur aus einem Skript schreiben, weil sonst leicht die Übersicht darüber verloren geht, weshalb der Datenpunkt geschrieben wurde.

                  etv 1 Reply Last reply Reply Quote 2
                  • etv
                    etv @paul53 last edited by

                    Herzlichen Dank für eure Tipps und Anregungen, dann war ich eh bis jetzt auch gut unterwegs!

                    Werd dann spezielle Scripte wie den Benachrichtigungsversand in global packen, weil viele meiner Scripte melden via push safer etwaige Probleme.

                    Top, noch mal herzlichen Dank!

                    Liebe Grüße
                    Tom

                    Homoran 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @etv last edited by

                      @etv sagte in Java Script Ressourcen optimal nutzen:

                      Werd dann spezielle Scripte wie den Benachrichtigungsversand in global packen

                      nein!

                      das wird vor jedes andere Skript gepackt, auch wenn du nur ein Licht über einen Bewegungsmelder schaltest

                      paul53 U 2 Replies Last reply Reply Quote 0
                      • paul53
                        paul53 @Homoran last edited by

                        @homoran sagte: das wird vor jedes andere Skript gepackt

                        Ja, unmittelbar vor dem Kompilieren. Wenn die enthaltenen Funktionen im Skript nicht aufgerufen werden, werden sie nicht kompiliert.

                        1 Reply Last reply Reply Quote 0
                        • U
                          uwe72 @Homoran last edited by uwe72

                          @homoran Ich verstehe den Nachteil, der entsteht wenn man in global Scripte Inhalte ablegt. Aber es gibt halt auch Vorteile, wenn Funktionen in vielen common Scripte verwendet werden, dann schreibe ich diese doch nicht in jedem common Script neu, sondern einmal in global. Stichwort redundante Codehaltung.

                          Es ist eher ein sehr großer Schwachpunkt von iobroker bzw. dem JS-Adapter, dass man nicht sauber mit imports arbeiten kann und der Weg gewählt wurde, einfach alle Inhalte von global in die common Scripte reinzukopieren.

                          Dazu kommt noch, bei mehreren JS-Instanzen wird da nicht mal auf die Instanz geschaut und instanzübergreifend von global nach common kopiert.

                          OliverIO 1 Reply Last reply Reply Quote 0
                          • OliverIO
                            OliverIO @uwe72 last edited by

                            @uwe72
                            Irgendwo im Forum hat schon mal jemand beschrieben wie man sich ein lokales NPM Paket für den js Adapter installieren kann

                            U 1 Reply Last reply Reply Quote 1
                            • U
                              uwe72 @OliverIO last edited by

                              @oliverio das wäre richtig cool

                              OliverIO 1 Reply Last reply Reply Quote 0
                              • OliverIO
                                OliverIO @uwe72 last edited by

                                @uwe72

                                So auf die Schnelle habe ich das gefunden. Ist aber von 2019 daher ohne Garantie
                                https://forum.iobroker.net/topic/27932/modulare-skripe

                                Eventuell weiß auch @haus-automatisierung noch was

                                U 1 Reply Last reply Reply Quote 0
                                • U
                                  uwe72 @OliverIO last edited by

                                  Habe für mich mal eine funktionierende Lösung in einem neuen Post aufgeschrieben:
                                  https://forum.iobroker.net/topic/78632/info-auslagerung-von-scripte-aus-global-aufs-filesystem

                                  1 Reply Last reply Reply Quote 0
                                  • First post
                                    Last post

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  537
                                  Online

                                  31.8k
                                  Users

                                  80.0k
                                  Topics

                                  1.3m
                                  Posts

                                  javascript
                                  6
                                  15
                                  721
                                  Loading More Posts
                                  • Oldest to Newest
                                  • Newest to Oldest
                                  • Most Votes
                                  Reply
                                  • Reply as topic
                                  Log in to reply
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  The ioBroker Community 2014-2023
                                  logo