Ankündigung

Einklappen
Keine Ankündigung bisher.

Patch zur massiven Performancesteigerung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Patch zur massiven Performancesteigerung



    Edit 21.08.2016 (22:45): Achtung neue Version 3 verwenden.

    Für SV 2.7 ist sie angehängt, für 2.8/2.9 in GitHub (widget.min.js und widget.js)
    Diejenige für SV 2.7 hat basic.activelist integriert.
    Details siehe Post #37 und #41.



    Edit 22.08.2016 (11:25): Version 3 für 2.7 war das falsche Zip, Version 3b ist nun das richtige (siehe Post #43)




    Hallo zusammen

    Nachdem ich mich eingehend mit der langen Ladezeit der smartVISU auseinandergesetzt hatte, konnte ich eine beachtliche Ursache finden und beheben. Dadurch laden die Seiten ca. 25% schneller.
    Die Verbesserung betrifft die Aktualisierung der Werte, welche nach dem eigentlichen Laden der Seite von KNX gelesen werden. Diesen Teil konnte ich um ca. 90% (!) beschleunigen. Damit wird also dieses hässliche Flackern der einzelnen Widgets deutlich reduziert.

    Ich konnte keine negativen Auswirkungen feststellen, wäre aber für weitere Tester dankbar.

    Es muss eigentlich nur eine einzige Datei ersetzt werden, nämlich die widget.min.js im Ordner widgets.
    Der Vollständigkeit halber könnt ihr auch widget.js (ohne min) ersetzen, im Betrieb wird diese normalerweise aber nicht benutzt.
    Die Dateien im Anhang sind für Version 2.7. Bei Bedarf werde ich auch diejenigen für 2.8 anpassen - ich muss bei mir aber 2.8 erst noch zum Laufen bringen.

    Da Apollo seit längerem nicht reagiert, kann ich mir den Pull Request wohl sparen.


    Die Erklärung für jQuery-Kenner:
    Die Events der einzelnen Widgets wurden alle per delegate ans Document gebunden und an die Widgets per Selector weitergegeben.
    Die Abarbeitung der Events ist damit sehr ineffizient, weil für jedes einzelne Widget der ganze DOM-Baum nach oben durchlaufen werden muss.
    Ich binde die Events nun mit on direkt an die einzelnen Widgets und unterbinde das Bubbling nach oben mit stopPropagation.

    Gruss
    Stefan
    Angehängte Dateien
    Zuletzt geändert von smai; 22.08.2016, 10:26.

    #2
    Ich werde testen und berichten. DANKE!

    Kommentar


      #3
      Teste ebenfalls.. update jetzt noch schnell vor der Arbeit
      Mist jetzt sehe ich: ich nutze leider die 2.8 :-/

      Update: habe jetzt einfach mal in meiner 2.8 getauscht und aktuell scheint es mit den neuen JS Files zu gehen.
      Update2: zu früh gefreut. Schalten geht nicht.
      Zuletzt geändert von psilo; 18.08.2016, 05:25.

      Kommentar


        #4
        Ich kann auch gerne testen ... nutze allerdings auch die 2.8

        Kommentar


          #5
          Hi,

          habe noch eine 2.7er laufen.

          Ich habe die Dateien ausgetauscht und werde im Alltag testen. Es ist bedeutend schneller geworden.

          Schalten (Licht/Jalousie) geht auch. Wenn es irgendwo im Alltag klemmt, melde ich mich hier.

          Erst mal

          Gruss Andreas

          Kommentar


            #6
            Hallo Stefan,

            vielen Dank für den Patch.

            Ich habe die Dateien heute morgen auch noch schnell vor der Arbeit ausgetauscht und ein erster kurzer Test auf einem alten iPad2 war schon um einiges schneller,
            besonders das Aktualisieren der Werte, wie du ja schon geschrieben hast.

            Ich werde das ganze einfach mal weiter testen und noch mal Feedback geben.

            Gruß,
            Henning

            Kommentar


              #7
              Hallo Stefan,

              kann auch hier die basic.activelist eingebaut werden?
              Hab die 2.7 und würde dann mit testen.

              https://knx-user-forum.de/forum/supp...n-ermöglichen

              Gruß

              Stefan

              Kommentar


                #8
                Im Anhang findest du die Version mit basic.activelist integriert (allerdings ungetestet).
                Im Code im erwähnten Thread steht als Name noch basic.test drin. Weil ich nicht sicher war, was du verwendest, habe ich beides integriert.
                Damit solltest du den Patch auf jeden Fall testen können.
                Angehängte Dateien

                Kommentar


                  #9
                  funktioniert super! (2.7) danke!

                  Kommentar


                    #10
                    Danke,

                    aber funktioniert leider nicht. Die Aktiven Elemente werden nicht eingeblendet.
                    Ich benutze basic.activelist.
                    Im Code ist allerdings noch ein if else Teil der bei dir fehlt. Liegt vielleicht daran?

                    Code:
                    $(document).delegate('span[data-widget="basic.activelist"]',{update:function(d,a){$("#"+this.id+"  img").attr("src",a==$(this).attr("data-val-on")?$(this).attr("data-pic-on"):$(this).attr("data-pic-off"));if (a == $(this).attr('data-val-on')) {$('#' + this.id).show();} else {$('#' + this.id).hide();}},click:function(d){$("#"+this.id+"  img").attr("src")==$(this).attr("data-pic-off")?io.write($(this).attr("data-item"),$(this).attr("data-val-on")):io.write($(this).attr("data-item"),$(this).attr("data-val-off"))}});
                    Gruß

                    Stefan

                    Kommentar


                      #11
                      Irgendwie würde es langsam doch Sinn machen, die SV zu forken, oder? Dann könnte man mind. mal die ganzen JS Libs hochziehen und auch die Min-Max-Avg Plots einbinden.. mir selber reicht nur aktuell halt SmartHomeNG als Projekt.

                      Kommentar


                        #12
                        Hallo Stefan,

                        super Sache. Danke Dir! Habe Deine Änderungen bei mir lokal für Version 2.8 angepasst. Funktioniert bestens bei gleichzeitiger, deutlicher Steigerung der Geschwindigkeit. Da wir jetzt einen weiteren Experten (smai) für die Visu unter uns haben, sind die bisherigen Vorbehalte gegenüber der Smartvisu angezählt.

                        Ich stimme psilo bei, es macht definitiv Sinn, Smartvisu zu forken. Ich würde mich sofort mit diversen pull requests für den "Count patch", Umstellung auf SVG Icons, verschiedenen neuen Icons und falls gewünscht den Änderungen von Smai für 2.8 beteiligen. Irgendjemand muss nur das Forken übernehmen.

                        Viele Grüße
                        Alex

                        Kommentar


                          #13
                          Ich bin mit PRs - soweit es mir die Arbeit an SmartHomeNG zulässt und ich intelligent genug bin sie zu stellen (bisher kriege ich nur Commits und Pushs bei SHNG gebacken) - auch gerne dabei.. Trotzdem muss ich den Fokus auf SH lassen.
                          aschwith kannst Du die 2.8er Changes zur Verfügung stellen?

                          Kommentar


                            #14
                            PS: Grundlegend wäre natürlich sowieso SUPER, in beiden Projekten stark zusammenzuarbeiten.

                            Kommentar


                              #15
                              Ehrlich gesagt bin ich noch hin und her gerissen, ob eine Weiterentwicklung der SV Sinn macht.
                              Leider ist jQuery mobile ebenfalls stecken geblieben. Und als ich mich so durch den Code gewühlt habe, sind mir noch sehr viele Verbesserungsmöglichkeiten und einige Designfehler aufgefallen.

                              Auf der anderen Seite bietet die SV natürlich einen beträchtlichen Funktionsumfang und hat eine grosse User-Basis. Deshalb wäre es schade, sie einfach untergehen zu lassen.

                              Für mich ist auch entscheidend, welchen Weg die Leute von SH weitergehen (siehe Was schwebt Euch bzgl. Visu vor?).
                              Ich kann mir durchaus vorstellen, an der SV mitzuarbeiten aber eben auch an einer neuen Visu für SH.

                              Wenn bald jemand einen Fork der SV macht, würde ich mich sicherlich erstmal beteiligen.
                              Vielleicht ist die SV danach ja so gut, dass die Leute von SH auch wieder daran glauben.

                              Kommentar

                              Lädt...
                              X