NEWS
Java Script Ressourcen optimal nutzen
-
@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.@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.
-
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:- viele kleine oder wenige große Scripte - was ist besser?
- Scripte im global Ordner werden immer einzeln geladen, oder sind die sowieso im RAM
- haben Kommentar Zeilen einen Einfluss auf den Speicherverbrauch im RAM?
- 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@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
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.
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 -
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@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
-
@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
-
@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
@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.
-
@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.
-
@uwe72
Irgendwo im Forum hat schon mal jemand beschrieben wie man sich ein lokales NPM Paket für den js Adapter installieren kann -
So auf die Schnelle habe ich das gefunden. Ist aber von 2019 daher ohne Garantie
https://forum.iobroker.net/topic/27932/modulare-skripeEventuell weiß auch @haus-automatisierung noch was
-
So auf die Schnelle habe ich das gefunden. Ist aber von 2019 daher ohne Garantie
https://forum.iobroker.net/topic/27932/modulare-skripeEventuell weiß auch @haus-automatisierung noch was
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